使用外键创建 TABLE 失败并出现 ORA-00905:缺少关键字
CREATE TABLE with foreign key fails with ORA-00905: missing keyword
每当我尝试引用外键时,我都会收到此错误(缺少关键字)
这是我的代码:
CREATE TABLE SP (
S# CHAR(2) NOT NULL,
P# CHAR(2) NOT NULL,
QTY INTEGER,
PRIMARY KEY (S#,P#),
FOREIGN KEY (S#) REFERENCE Supplier(S#) ON DELETE CASCADE
);
您的代码有几个问题:
你的主键定义语法错误;应该是 CONSTRAINT <constraint_name> PRIMARY KEY (S#, P#)
外键定义中关键字REFERENCES
少了最后的S
考虑:
CREATE TABLE SP (
S# CHAR(2) NOT NULL,
P# CHAR(2) NOT NULL,
QTY INTEGER,
CONSTRAINT SP_PK PRIMARY KEY (S#, P#),
FOREIGN KEY (S#) REFERENCES Supplier(S#) ON DELETE CASCADE
);
温馨提示:请注意主键引用的列必须是唯一的,或者是被引用的table中的主键(即列S#
必须是[=38=的主键) ] Supplier
或具有 UNIQUE
约束)。
每当我尝试引用外键时,我都会收到此错误(缺少关键字) 这是我的代码:
CREATE TABLE SP (
S# CHAR(2) NOT NULL,
P# CHAR(2) NOT NULL,
QTY INTEGER,
PRIMARY KEY (S#,P#),
FOREIGN KEY (S#) REFERENCE Supplier(S#) ON DELETE CASCADE
);
您的代码有几个问题:
你的主键定义语法错误;应该是
CONSTRAINT <constraint_name> PRIMARY KEY (S#, P#)
外键定义中关键字
REFERENCES
少了最后的S
考虑:
CREATE TABLE SP (
S# CHAR(2) NOT NULL,
P# CHAR(2) NOT NULL,
QTY INTEGER,
CONSTRAINT SP_PK PRIMARY KEY (S#, P#),
FOREIGN KEY (S#) REFERENCES Supplier(S#) ON DELETE CASCADE
);
温馨提示:请注意主键引用的列必须是唯一的,或者是被引用的table中的主键(即列S#
必须是[=38=的主键) ] Supplier
或具有 UNIQUE
约束)。