JavaDB: возможно ли изменить смещение автоинкремента в существующей таблице? - PullRequest
1 голос
/ 10 декабря 2008

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

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

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

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

ALTER TABLE my_little_table AUTO_INCREMENT =2000

для установки значения автоинкремента.

0 голосов
/ 10 декабря 2008

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

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

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

ALTER TABLE tbl ALTER COLUMN col SET INCREMENT BY x
...