Я условно вставки строки в столе PostgreSQL и вручную указав ID:Предварительная последовательность (`nextval`) в PostgreSQL, если строка вставляется
INSERT INTO foo (foo_id, foo_name)
SELECT 4, 'My Name'
WHERE NOT EXISTS (
SELECT * FROM foo WHERE foo_id = 4
);
Это не будет увеличивать последовательность, которая генерирует следующий foo_id
.
Как я могу запустить SELECT nextval('foo_foo_id_seq'::regclass);
только в том случае, если строка в действительности является вложением в указанный выше запрос?
ли вы хотите последовательность продолжать с этим номером, или Вы хотите, чтобы увеличить последовательность относительно того, что такое текущее значение? (Но в обоих случаях вы рискуете получить уникальные ключевые нарушения позже) –
Продолжая с этим номером, вы будете работать. Например, в этом случае, если строка вставлена, я хочу, чтобы следующее значение последовательности было равно 5. – s16h