【发布时间】:2020-11-02 07:03:06
【问题描述】:
我刚开始学习 SQL,在尝试创建自己的表时遇到了一个障碍,因为我无法找出到底哪里出了问题。
如果我在错误的地方发布此类查询,请原谅我,但我很迷茫,因为我完全不知道哪里出了问题......
我在我的 SQL Developer 中遇到以下问题(我使用的服务器源自使用 IP 地址连接的学校服务器,但我能够获得其版本 - Oracle Database 12c Enterprise Edition Release 12.1。 0.2.0 - 64 位生产,不确定是否有帮助)
ORA-00905: missing keyword
00905. 00000 - "missing keyword"
MYWORK 表中的“更新”一词带有红色下划线。
我的代码语句如下:
CREATE TABLE MYARTIST
(
MyArtistID Int NOT NULL,
LastName Char(25) NOT NULL,
FirstName Char(25) NOT NULL,
CONSTRAINT MyArtistPK PRIMARY KEY(MyArtistID)
);
-- This block is giving me issues, with errors stemming from the FOREIGN KEY portion
CREATE TABLE MYWORK
(
MyWorkID Int NOT NULL,
Title Char(25) NOT NULL,
Copy Char(25) NOT NULL,
MyArtistID Int NOT NULL,
CONSTRAINT MyWorkPK PRIMARY KEY(MyWorkID),
CONSTRAINT MyArtistFK FOREIGN KEY(MyArtistID) REFERENCES MYARTIST(MyArtistID)
ON UPDATE NO ACTION
ON DELETE NO ACTION
);
CREATE TABLE MYARTISTWORK
(
MyArtistID INT NOT NULL,
MyWorkID INT NOT NULL,
CONSTRAINT MyArtWorkPK PRIMARY KEY(MyArtistID, MyWorkID),
CONSTRAINT ArtFK FOREIGN KEY(MyArtistID) REFERENCES MYARTIST(MyArtistID)
ON UPDATE NO ACTION
ON DELETE CASCADE,
CONSTRAINT WorkFK FOREIGN KEY(MyWorkID) REFERENCES MYWORK(MyWorkID)
ON UPDATE NO ACTION
ON DELETE CASCADE
);
如果我删除 ON UPDATE... ON DELETE... 语句,则表会正确创建,但如果我包含在语句中,则不是这样。有什么见解吗?
P.S - 我使用的代码语句类似于我正在阅读的一本书 - 数据库处理:基础、设计和实现,全球版
【问题讨论】: