У вас есть две проблемы:
- В этой таблице нет ограничений первичного ключа.
- Заданное вами ограничение внешнего ключа имеет
RELATED_EVENT_ID
ссылку на RELATED_EVENT_ID
. Я подозреваю, что это была просто опечатка.
Измените определение вашей таблицы на:
CREATE TABLE EVENT
(EVENT_ID NUMBER
NOT NULL
CONSTRAINT PK_EVENT
PRIMARY KEY
USING INDEX,
NAME VARCHAR2(20),
RELATED_EVENT_ID NUMBER);
Затем добавьте ограничение внешнего ключа как
ALTER TABLE EVENT
ADD CONSTRAINT EVENT_FK1
FOREIGN KEY (RELATED_EVENT_ID) REFERENCES EVENT(EVENT_ID);
db <> fiddle here
EDIT
Обратите внимание, что лучший способ справиться с этим - использовать соединительную таблицу, например:
CREATE TABLE EVENT_EVENT
(EVENT_ID1 NUMBER
CONSTRAINT EVENT_EVENT_FK1
REFERENCES EVENT(EVENT_ID),
EVENT_ID2 NUMBER
CONSTRAINT EVENT_EVENT_FK2
REFERENCES EVENT(EVENT_ID),
CONSTRAINT PK_EVENT_EVENT
PRIMARY KEY (EVENT_ID1, EVENT_ID2)
USING INDEX);
Тогда Вы можете удалить столбец RELATED_EVENT_ID
из EVENT, так как он вам больше не нужен.