нет дубликатов, но все равно ошибка нарушения ограничения - PullRequest
1 голос
/ 18 мая 2011

У меня есть таблица, в которой было установлено ограничение для поля с именем LoginId. При вставке новой строки я получаю сообщение об ошибке, связанное с этим полем (LoginID), в котором указана следующая ошибка.

Команда вставки находится ниже: Тип 1 с последовательностью

insert into TemplateModule
(LoginID,MTtype, Startdate TypeId, TypeCase, MsgType, MsgLog, FileName,UserName, CrID, RegionaltypeId)
values 
(MODS_SEQ.NEXTVAL,3434,2843,2453,2392,435,2390,'pension.txt','rereee',454545,3434);
Failed with error

Тип 2 без последовательности в жестко заданном значении ::

insert into TemplateModule
(LoginID,MTtype, Startdate TypeId, TypeCase, MsgType, MsgLog, FileName,UserName, CrID, RegionaltypeId)
values
(3453,3434,2843,2453,2392,435,2390,'pension.txt','rereee',454545,3434)

Я неоднократно проверял наличие дубликатов. Но ничего не найдено. Что может быть основной причиной

* * 1010

Ответы [ 3 ]

2 голосов
/ 18 мая 2011

Сначала сделайте описание LGN_INDEX для этой таблицы, чтобы быть абсолютно уверенным, что вы смотрите на правильный столбец.LGN_INDEX - ограничение + индекс или просто индекс?Попробуйте перестроить свой индекс, чтобы убедиться, что он не поврежден.Убедитесь, что у вас нет других ограничений, которые могут мешать.

Во-вторых, выполните SELECT MAX(LOGINID) FROM TEMPLATEMODULE и сравните это со следующим значением последовательности, чтобы убедиться, что ваша последовательность не установлена ​​ниже максимального идентификатора.вы работаете с.

В-третьих, проверьте, есть ли у вас какие-либо триггеры на этой таблице.

Если ничего из этого не работает, попробуйте заново создать таблицу, используя только схему.Перегрузите данные и попробуйте снова.В этой таблице может быть параметр конфигурации, вызывающий проблему.CREATE TABLE MY_TEMP AS SELECT * FROM TEMPLATEMODULE.

1 голос
/ 21 февраля 2013

Я столкнулся с той же проблемой.

Оператор вставки, заполняющий целочисленное значение (не в таблице) в столбце первичного ключа.

Проблема заключалась в том, что триггер был связан с последовательностью. Next_val для последовательности уже присутствовал в таблице.

Триггер срабатывает, захватывает порядковый номер и дает сбой с нарушением первичного ключа.

0 голосов
/ 03 февраля 2016

Я столкнулся с той же проблемой при импорте из файла Excel. Я думал, что в файле нет дубликатов, пока не попытался удалить дубликаты в Excel.

Чтобы найти и удалить дубликаты в Excel,

  1. Выберите данные. Ctrl + a должно работать.
  2. Нажмите Data -> Remove Duplicates
  3. Выберите поля, которые имеют ограничения в вашей базе данных, и нажмите OK
  4. Excel должен удалить все повторяющиеся записи на основе полей, выбранных на шаге 3 выше.

Теперь вы сможете импортировать записи из файла в вашу базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...