Oracle уникальная ошибка ограничения при вставке - PullRequest
1 голос
/ 05 марта 2011
INSERT INTO SS_ALERT_EVENTS (  ALERT_ID, EVENT_ID, TIME_DURATION, ALERT_EVENT_EFFECT, DATASET_ASSIGN_RULE, KEY_FIELDS_ASSIGN_RULE, SIDE, ALERT_VALIDATION_RULE, UNIQUE_ID ) VALUES ( 'test1', 7 ,  0, 1 ,  NULL,  '5b414c4552545f494e535452554d454e542e496e737472756d656e742049445d203a3d205b54524144455f5245504f52542e496e737472756d656e742049445d3b',  -1,  '5b414c4552542e416374696f6e5d203a3d20313b', 1)
*
ERROR at line 1:
ORA-00001: unique constraint (ESV31SURV.PK_SS_ALERT_EVENTS) violated

Проблема в поле EVENT_ID.Но я все равно хочу его вставить.Однако, когда я пытаюсь удалить ограничение этого имени, он говорит, что такого ограничения нет.Кроме того, в таблице USER_CONSTRAINTS такое ограничение не отображается.Что мне делать?

1 Ответ

3 голосов
/ 05 марта 2011

Уникальным ограничением может быть ограничение первичного ключа - по крайней мере, это то, что предлагает название.

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

Этот первичный ключ был создан с целью, поэтому перед тем, как слепо отбросить его, вы должны проконсультироваться с тем, кто создал эту схему, и убедиться, что первичный ключ не нужен (или должен быть переопределен).

Сказав все это: попробуйте сбросить ПК, используя

ALTER TABLE SS_ALERT_EVENTS 
  DROP PRIMARY KEY

Но, пожалуйста, проверьте, действительно ли это мудрое решение!

...