Сброс счетчика автоматического приращения в postgres
Я хотел бы заставить поле автоматического приращения таблицы к некоторому значению, я попытался с этим:
ALTER TABLE product AUTO_INCREMENT = 1453
и
ALTER SEQUENCE product RESTART WITH 1453;
ERROR: relation "your_sequence_name" does not exist
Я новичок в postgres : (
у меня есть таблица product С Id и name поле
7 ответов:
если вы создали таблицу
productСidстолбец, то последовательность не просто называетсяproduct, аproduct_id_seq(то есть${table}_${column}_seq).это вам нужно:
ALTER SEQUENCE product_id_seq RESTART WITH 1453вы можете увидеть последовательности в вашей базе данных с помощью
\dsкоманда в psql. Если вы это сделаете\d productи посмотрите на ограничение по умолчанию для столбцаnextval(...)вызов также укажет имя последовательности.
вот команда, которую вы ищете, предполагая, что ваша последовательность для таблицы product является product_id_seq:
изменить последовательность product_id_seq перезапуск с 1453;
следующая команда делает это автоматически для вас: Это также приведет к удалению всех данных в таблице. Так что будь осторожен.
TRUNCATE TABLE someTable RESTART IDENTITY;
для установки счетчика последовательности:
setval('product_id_seq', 1453);если вы не знаете имя последовательности использовать :
select pg_get_serial_sequence('product', 'id'); pg_get_serial_sequence ------------------------ public.product_id_seqпараметры имя таблицы и имя столбца.
или просто выдать
\d productнаpsqlзапрос:=> \d product Table "public.product" Column | Type | Modifiers --------+---------+------------------------------------------------------ id | integer | not null default nextval('product_id_seq'::regclass) name | text |
преобразовано из комментария ради удобства посетителя
из этого сообщения не ясно, что такое правильный синтаксис. Это:
ALTER SEQUENCE product_id_seq RESTART WITH 1453;
Если вы хотите сброс автоматическое увеличение от GUI, затем выполните следующие действия.
- иди к своему база данных
- нажать на кнопку Public
- на странице списка таблиц вы можете увидеть TABS как "таблицы", "представления", "последовательности", как это.
- нажать на кнопку последовательности
- когда вы нажимаете на "последовательности" вы можете увидеть все перечисление последовательностей, нажмите на любой, который вы хотите сброс
- после этого вы можете увидеть несколько вариантов, таких как "Alter", "Set Value", "Restart", "Reset" и т. д...
- затем нажмите на кнопку сброс, затем добавьте одну новую строку.
чтобы сбросить автоматическое приращение, вы должны получить свое имя последовательности, используя следующий запрос.
синтаксис:
SELECT pg_get_serial_sequence(‘tablename’, ‘ columnname‘);пример:
SELECT pg_get_serial_sequence('demo', 'autoid');запрос вернет имя последовательности autoid как "Demo_autoid_seq" Затем используйте следующий запрос для сброса autoid
синтаксис:
ALTER SEQUENCE sequenceName RESTART WITH value;пример:
ALTER SEQUENCE "Demo_autoid_seq" RESTART WITH 1453;
Comments