Джавадб:Можно ли изменить смещение автоматического увеличения в существующей таблице?

StackOverflow https://stackoverflow.com/questions/354349

  •  21-08-2019
  •  | 
  •  

Вопрос

Можно ли изменить смещение автоматического увеличения в уже существующей таблице с помощью JavaDB?

У меня возникла проблема, из-за которой вставка новых записей обычно (но не всегда) завершается ошибкой с жалобой на использование существующего ключа (мой столбец автоматического увеличения).Чтобы заполнить эту базу данных, я взял дамп из другой базы данных (MySQL) и использовал хранимую процедуру JavaDB, чтобы вставить их все в соответствующую таблицу JavaDB.Моя теория заключается в том, что вставка этих записей скопировала существующие идентификаторы из таблицы MySQL.Теперь функция автоматического увеличения выдает существующие идентификаторы.Я полагаю, что явная установка смещения на некоторое большое число позволит автоинкременту снова работать.

Это было полезно?

Решение 2

Я не знаю, как напрямую изменить смещение, но мне удалось исправить это с помощью:

  1. Изменение суммы приращения на X (в моем случае на 1 миллион).
  2. Вставка фиктивной записи.
  3. Уменьшаем величину приращения обратно до 1.
  4. Удаление фиктивной записи.

Я использовал этот оператор SQL для изменения величины приращения:

ALTER TABLE tbl ALTER COLUMN col SET INCREMENT BY x

Другие советы

Даже если это не прямой ответ на вопрос:С помощью MySQL вы можете сделать

ALTER TABLE my_little_table AUTO_INCREMENT =2000

чтобы установить значение автоматического приращения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top