這是我的代碼:
SQL> CREATE TABLE manufacturer(
manufacturer_id integer primary key,
manufacturer_name varchar2(20)
);
Table created.
SQL> CREATE TABLE models(
model_id integer primary key,
model_name varchar2(20),
model_year integer,
eng_cylinder integer,
eng_horsepower integer,
manufacturer_id int foreign key references manufacturer(manufacturer_id)
);
它給了我這個錯誤:
ERROR at line 1:
ORA-00907: missing right parenthesis
我的代碼中的括號有什么問題?這只發生在我設定外鍵時。
注意:我使用的是 Oracle Database 11g Express Edition 中的 SQL cmd。
我試過在 MySQL 上制作這些表,效果很好。
uj5u.com熱心網友回復:
行內約束不使用“外鍵”關鍵字。所以,像這樣:
CREATE TABLE manufacturer (manufacturer_id integer primary key, manufacturer_name varchar2(20));
CREATE TABLE models (model_id integer primary key,
model_name varchar2(20),
model_year integer,
eng_cylinder integer,
eng_horsepower integer,
manufacturer_id int constraint models_fk1 references manufacturer(manufacturer_id));
uj5u.com熱心網友回復:
對,正如馬修已經說過的那樣。
或者,創建外鍵約束- 然后您使用語法的一部分(參見第 9 行):foreign key
SQL> CREATE TABLE models
2 (model_id integer primary key,
3 model_name varchar2(20),
4 model_year integer,
5 eng_cylinder integer,
6 eng_horsepower integer,
7 manufacturer_id int,
8 --
9 constraint models_fk1 foreign key (manufacturer_id) references manufacturer(manufacturer_id)
10 );
Table created.
SQL>
或者,還有另一種選擇 - alter table:
SQL> alter table models add constraint models_fk1 foreign key
2 (manufacturer_id) references manufacturer (manufacturer_id);
Table altered.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/472545.html
