Извините, что задал такой тупой вопрос, но я пытаюсь составить две таблицы: родительскую и дочернюю. У родителя также есть несколько других детей, и все они, кажется, имеют эту ошибку. Может ли кто-нибудь сказать мне, почему это так говорит? Я использую Sql.
Я пытался переписать всю таблицу и пытался использовать только при удалении или обновлении каскад отдельно, но это не работает. Я пытался исследовать другие подобные вопросы, но ни один из них не говорит мне причину этого.
родительская таблица; уже создан, проблем с ним нет.
create table Person(
SSN int,
FName Varchar(30),
LName Varchar(30) Not Null,
Address Varchar(30) Not Null,
Age int Not Null,
Gender VarChar(20) not Null,
Phone Varchar(200) Not Null,
Primary key(SSN),
Check (Age >0)
);
А это (доктор) детский стол. Когда я пытаюсь выполнить запрос, он говорит, что мне не хватает ключевого слова. Но какое слово?
create table Doctor(
SSN int not Null,
Doc_id int not Null,
Dept_id int not Null,
HireDate Date not Null,
foreign key(SSN) references Person(SSN)
on update cascade on delete cascade
);
Ниже приведен еще один дочерний класс (на тот случай, если кто-то захочет его увидеть)
create table Patient(
SSN int,
Pat_id int,
RegDate date not Null,
foreign key(SSN) references Person(SSN)
ON UPDATE CASCADE ON DELETE CASCADE
);
Я также пытался удалить запятую после этого оператора RegDate, но затем он говорит, что мне не хватает правильного паратеза.
Когда я снимаю запятую:
Сообщение об ошибке -
ORA-00907: отсутствует правая скобка
00907. 00000 - «отсутствует правая скобка»
* Причина:
* Действие:
С запятой:
Сообщение об ошибке -
ORA-00905: отсутствует ключевое слово
00905. 00000 - «пропущенное ключевое слово»
* Причина:
* Действие:
Что мне делать?