Как обновить столбец первичного ключа?
До недавнего времени я использовал hibernate @Entity
аннотация для сопоставления с таблицами базы данных.Все первичные ключи аннотируются с помощью @GeneratedValue(strategy = GenerationType.IDENTITY)
У меня есть сценарий, в котором мне нужно создать новую схему + перенести данные из старой схемы в новую схему.(с небольшими изменениями столбцов, такими как drop, length и type)
После успешной миграции данных в новые таблицы схемы, когда я пытаюсь вставить данные с помощью приложения, его выбрасывает исключение
[ERROR] util.JDBCExceptionReporter DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=1; _NewSchema_._TableName_ , DRIVER=3.51.90
Я верю это приложение пытается снова вставить строки со значением первичного ключа, начиная с 1, потому что то же приложение отлично работает с пустыми таблицами.
Я хочу, чтобы строки данных вставлялись со значением первичного ключа как наивысшее значение существующего первичного ключа строк .
Любая помощь будет благодарна полностью :)
3 ответа:
Ваше предположение верно, вот мое решение, выполните следующий SQL, чтобы дать столбцу ID заданную начальную позицию, тогда ваше приложение будет работать нормально.
alter table TABLE_NAME alter column ID set GENERATED BY DEFAULT RESTART WITH 10000;
Надеюсь вам помочь:)