Джавадб:Можно ли изменить смещение автоматического увеличения в существующей таблице?
-
21-08-2019 - |
Вопрос
Можно ли изменить смещение автоматического увеличения в уже существующей таблице с помощью JavaDB?
У меня возникла проблема, из-за которой вставка новых записей обычно (но не всегда) завершается ошибкой с жалобой на использование существующего ключа (мой столбец автоматического увеличения).Чтобы заполнить эту базу данных, я взял дамп из другой базы данных (MySQL) и использовал хранимую процедуру JavaDB, чтобы вставить их все в соответствующую таблицу JavaDB.Моя теория заключается в том, что вставка этих записей скопировала существующие идентификаторы из таблицы MySQL.Теперь функция автоматического увеличения выдает существующие идентификаторы.Я полагаю, что явная установка смещения на некоторое большое число позволит автоинкременту снова работать.
Решение 2
Я не знаю, как напрямую изменить смещение, но мне удалось исправить это с помощью:
- Изменение суммы приращения на X (в моем случае на 1 миллион).
- Вставка фиктивной записи.
- Уменьшаем величину приращения обратно до 1.
- Удаление фиктивной записи.
Я использовал этот оператор SQL для изменения величины приращения:
ALTER TABLE tbl ALTER COLUMN col SET INCREMENT BY x
Другие советы
Даже если это не прямой ответ на вопрос:С помощью MySQL вы можете сделать
ALTER TABLE my_little_table AUTO_INCREMENT =2000
чтобы установить значение автоматического приращения.