antonodu Ответов: 1

Как я могу исправить свою уникальную проблему нарушения ограничений


Я создал эту таблицу и при попытке вставить значения в таблицу я продолжаю получать эту ошибку
CREATE TABLE Jobs
(
        job_id numeric(5) NOT NULL,
        job_title varchar2(20) NOT NULL,
        PRIMARY KEY (job_id)
);
ORA-00001: unique constraint (SYS_C00721767) violated
Может ли кто-нибудь сказать мне, что я делаю неправильно, и направить меня в правильном направлении
Спасибо

Что я уже пробовал:

Я попытался выяснить, где находится нарушение (как показано ниже), к сожалению, мне не повезло, я имею в виду, что Oracle ничего мне не показывает
SELECT DISTINCT Jobs
FROM all_indexes
WHERE index_name = 'SYS_C00721767';

RAMASWAMY EKAMBARAM

Также проверьте словарь данных:
User_constraints & user_cons_columns - вы найдете sys_c00721767 в списке при запросе:
"Выберите * из user_constraints, где table_name = 'JOBS' "
Аналогично для 'user_cons_columns'

1 Ответов

Рейтинг:
1

CHill60

Где-то вы пытаетесь вставить строку, где job_id уже существует.
Перед добавлением новой строки вы должны проверить, что она еще не существует.

SELECT job_title FROM Jobs WHERE job_id = @newid
где @newid это job_id, который вы пытаетесь вставить.
Кроме того, сделайте job_id автоматически созданным полем инкремента, и проблема исчезнет - см. Столбцы ORACLE-BASE - Identity в Oracle Database 12c Release 1 (12.1)[^]