有声明的约束时,你可以使用两个符号:
1)在线(约束):
CREATE TABLE account
(AccountNo NUMBER(2) PRIMARY KEY,
AccountType VARCHAR(1) REFERENCES account_type(TypeCode),
CustomerRef NUMBER(2) REFERENCES bank_customer(CustomerRef),
DateOpened DATE,
CurrentBalence NUMBER(6,2),
OverdraftLimit NUMBER(5,2));
2)out-of-线
CREATE TABLE account
(
AccountNo NUMBER(2) PRIMARY KEY,
AccountType VARCHAR(1),
CustomerRef NUMBER(2),
DateOpened DATE,
CurrentBalence NUMBER(6,2),
OverdraftLimit NUMBER(5,2),
FOREIGN KEY(AccountType) REFERENCES account_type(TypeCode),
FOREIGN KEY(CustomerRef) REFERENCES account_type(TypeCode)
);
在这两种情况下,你可以在前面加上约束声明与CONSTRAINT <name>
,让您的名字命名的约束,否则甲骨文分配它自己的名字。
行内符号应用于声明约束的列,将行外应用于表。在语法上有一些细微差别+一些限制,例如你不能声明out-of-line NULL约束。
您可以在CREATE TABLE和ALTER TABLE中使用内联和外联语法。有关更多信息,请参阅Oracle文档
您需要说外键引用primarytable(col) – radar 2014-12-02 18:44:18
是的,您可以有多个'FK's,但是您没有正确定义它们。除了在列定义中放置FOREIGN KEY之外,还有更多的东西。 https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm – 2014-12-02 18:44:26
“AccountType,CustomerRef”引用的表和列是什么? – 2014-12-02 18:46:55