Ручная вставка в таблицу postgres с последовательностью первичного ключа

Я впервые в жизни конвертирую таблицу MySQL в PostgreSQL и сталкиваюсь с традиционной проблемой новичков, связанной с отсутствием auto_increment.

Теперь я Мы выяснили, что решение postgres заключается в использовании последовательности и последующем запросе nextval () этой последовательности в качестве значения по умолчанию при каждой вставке. Я также читал, что тип SERIAL автоматически создает последовательность и первичный ключ, и что nextval () увеличивает счетчик даже при вызове внутри транзакций, чтобы избежать блокировки последовательности.

Я не могу найти решения, так это проблема того, что происходит, когда вы вручную вставляете значения в поле с ограничением UNIQUE или PRIMARY и a nextval () последовательности по умолчанию. Насколько я понимаю, это приводит к сбою команды INSERT, когда последовательность достигает этого значения.

Есть ли простой (или общий) способ исправить это?

Было бы очень полезно четкое объяснение.

] Обновление: если вы чувствуете, что я не должен этого делать, никогда не смогу исправить это или делаю некоторые ошибочные предположения, пожалуйста, не стесняйтесь указывать на них в своих ответах. Прежде всего, скажите, пожалуйста, что делать, чтобы предложить программистам стабильную и надежную базу данных, которая может ' t быть поврежденным простой вставкой (желательно, не скрывая все за хранимыми процедурами)

12
задан Michael Clerx 12 October 2010 в 08:36
поделиться