有聲明的約束時,你可以使用兩個符號:
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