不确定我缺少了什么来得到这个错误?
Error starting at line : 95 in command -
ALTER TABLE Official_Language ADD CONSTRAINT Language_Official_Language_fk
FOREIGN KEY (language_code)
REFERENCES Language (language_code)
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE
Error report -
SQL Error: ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action:
感谢您的帮助:-)感谢
ALTER TABLE Official_Language ADD CONSTRAINT Language_Official_Language_fk
FOREIGN KEY (language_code)
REFERENCES Language (language_code)
NOT DEFERRABLE;
可能的选择是ON DELETE[CASCADE|SET NULL]默认情况下(如果省略ON DELETE),它与您编写的内容相同。
NOT DEFERABLE是默认值(您也可以省略它)
这个应该有效:
ALTER TABLE Official_Language ADD CONSTRAINT Language_Official_Language_fk
FOREIGN KEY (language_code)
REFERENCES Language (language_code)
NOT DEFERRABLE;
默认值为"无操作",Oracle对删除/更新没有任何影响。
可能的关键字是ON DELETE CASCADE
或ON DELETE SET NULL
与MySql不同,Oracle不支持ON DELETE NO ACTION
-选项有:
- (无)(即强制引用完整性)
ON DELETE CASCADE
(即级联删除)ON DELETE SET NULL
(如果列可空性允许,则将键更新为空)
参考
SqlFiddle此处