提前抱歉,因为这对我来说完全是业余时间。
这是我的组分配给在SQL dev中创建的数据库模式。
我在参考FOREIGN KEYs时遇到了困难
等。 我创建了表作者,这一切都很好。我不确定aName是否应该是唯一标识符或主键。
CREATE TABLE AUTHOR
(
aName varchar (60),
book varchar (60) PRIMARY KEY
);
然而,当我尝试制作BOOK表时,由于我在SQL中的无能而遇到麻烦(我真的很想)。
CREATE TABLE BOOK
(
ISBN INTEGER PRIMARY KEY,
year integer CHECK (yearBETWEEN 1900 AND 2016),
title varchar (60) FOREIGN KEY REFERENCES FORFATTER (BOK),
publisher utgiver varchar (90),
);
当我尝试执行脚本时,我收到错误"缺少右括号"在我尝试引用外键的行上。我的猜测是语法错误,但我无法解决。
我无法解决的其他问题是我如何将表格DISCIPLINES中的主键书引用到BOOK表中的年份列。
同样适用于BOOK表中的Publisher与PUBLISHER表中的URL列之间的箭头。当它们都不是主键时,如何将它们互相引用?
我可能会错误地阅读架构或某些可能导致我某些困惑的部分。如果你可以帮助我或以任何方式给出某种方向,那将非常感激。
答案 0 :(得分:0)
对于内联外键,您无法使用foreign key
关键字。你最后还有一个悬空,
:
CREATE TABLE BOOK
(
ISBN INTEGER PRIMARY KEY,
year integer CHECK (year BETWEEN 1900 AND 2016),
title varchar (60) REFERENCES FORFATTER (BOK),
publisher utgiver varchar (90) --<<< remove the comma here
);
或者:
CREATE TABLE BOOK
(
ISBN INTEGER PRIMARY KEY,
year integer CHECK (year BETWEEN 1900 AND 2016),
title varchar (60),
publisher utgiver varchar (90), --<< for this syntax you need the comma
foreign key (title) REFERENCES FORFATTER (BOK)
);