我像這樣寫了這個 SQL 腳本,我不知道缺少什么
create table Reggister(
stdNo CHAR(5),
courseID CHAR(8),
semesterID CHAR(5),
grade CHAR(2),
mark DECIMAL(4,2) check(BETWEEN 0.00 and 100.00),
foreign key (stdNo) references student(stdNo),
foreign key (courseID) references course(courseID),
foreign key (semesterID) references semester(semesterID),
primary key (stdNo, courseID, semesterID)
);
它會給我類似 ORA-00936: missing expression
uj5u.com熱心網友回復:
杰夫霍爾特的評論就是答案。BETWEEN運算子的語法是:
expression [ NOT ] BETWEEN low AND high
所以你只是在檢查約束的范圍部分缺少要測驗的運算式。它應該是:
check(mark BETWEEN 0.00 and 100.00)
當架構中存在外鍵宣告中的表和列時,腳本的其余部分將起作用。
uj5u.com熱心網友回復:
我解決了
create table Reggister(
stdNo CHAR(5),
courseID CHAR(8),
semesterID CHAR(5),
grade CHAR(2),
mark DECIMAL(4,2) check(mark BETWEEN 0.00 and 100.00),
foreign key (stdNo) references student(stdNo),
foreign key (courseID) references course(courseID),
foreign key (semesterID) references semester(semesterID)
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/373076.html
上一篇:選擇自己運行但不在子查詢中
