2013-04-06 3 views
1

Скажите, у меня есть table, созданный Eclipselink.Derby: массовый импорт не установлен AUTO_INCREMENT

CREATE TABLE "ACCOUNT" ("ID" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "DTYPE" VARCHAR(31), "EMAIL" VARCHAR(255)); 

Далее я импортировать большую часть из файла, содержащий:

1,"admin_","[email protected]" 
2,"user_","[email protected]" 
3,"user_","[email protected]" 

импорт является успешным, используя ij tool из Apache в сочетании с SYSCS_UTIL.SYCS_IMPORT_TABLE().

Далее я создам пользователя через JPA2. Это приводит к:

Caused by: org.apache.derby.client.am.SqlException: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'SQL130406103359120' defined on 'ACCOUNT'. 

Без запуска импорта я могу создать пользователя просто отлично. Кажется, что импорт не учитывает функцию AUTO_INCREMENT, как указано в таблице. Мне не нужно обновлять AUTO_INCREMENT до 4, используя ALTER TABLE ACCOUNT AUTO_INCREMENT = 4;, должен ли я?

ответ

1

После выполнения импорта, сделайте следующее:

ALTER TABLE ACCOUNT ALTER COLUMN ID RESTART WITH 4 

Смотрите эту ссылку: http://db.apache.org/derby/docs/10.9/ref/rrefsqlj81859.html#rrefsqlj81859__rrefsqlj37860

+0

Хм хорошо, слишком плохо это не является частью этой функции. Хотя я понимаю, что во многих случаях это должно быть реализовано по-разному. Спасибо за ссылку на документацию! – Aquillo

Смежные вопросы