甲骨文外键
Oracle foreign key
所以我有两个 tables
CREATE TABLE Client(
ID NUMBER(10) NOT NULL, (PRIMARY KEY)
Name VARCHAR(30) NOT NULL,
Surname VARCHAR(30) NOT NULL,
Phone NUMBER(11) NOT NULL,
Email VARCHAR(70));
CREATE TABLE Boss(
B_Surname VARCHAR(30) NOT NULL, (PRIMARY KEY)
B_Name VARCHAR(30) NOT NULL);
我需要将外键(来自 Boss table 的 B_surname)放到客户端 table。我试过使用 ALTER TABLE:
ALTER TABLE Client ADD CONSTRAINT Boss_Client_fk FOREIGN KEY (B_Surname) REFERENCES Client(ID);
之后我遇到了错误。
感谢您的帮助。
我想你想要以下内容。请注意,您可能应该在 Oracle 中使用 VARCHAR2
而不是 VARCHAR
。它们目前的工作方式相同,但 Oracle 可能会更改 VARCHAR
的功能以使其符合 ANSI 标准(其中空字符串 ''
与 NULL
s ...但我离题了):
CREATE TABLE client
( id NUMBER(10) NOT NULL PRIMARY KEY
, name VARCHAR2(30) NOT NULL
, surname VARCHAR2(30) NOT NULL
, phone NUMBER(11) NOT NULL
, email VARCHAR2(70) );
CREATE TABLE boss
( b_surname VARCHAR2(30) NOT NULL PRIMARY KEY
, b_Name VARCHAR2(30) NOT NULL );
然后:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
列在 CLIENT
中命名为 surname
并且在 BOSS
中命名为 b_surname
有点奇怪。
如果您希望 BOSS
中的 b_surname
引用 CLIENT
中的 surname
-- 那么您需要将 CLIENT.surname
设为主键,或者至少是独一无二的。
所以我有两个 tables
CREATE TABLE Client(
ID NUMBER(10) NOT NULL, (PRIMARY KEY)
Name VARCHAR(30) NOT NULL,
Surname VARCHAR(30) NOT NULL,
Phone NUMBER(11) NOT NULL,
Email VARCHAR(70));
CREATE TABLE Boss(
B_Surname VARCHAR(30) NOT NULL, (PRIMARY KEY)
B_Name VARCHAR(30) NOT NULL);
我需要将外键(来自 Boss table 的 B_surname)放到客户端 table。我试过使用 ALTER TABLE:
ALTER TABLE Client ADD CONSTRAINT Boss_Client_fk FOREIGN KEY (B_Surname) REFERENCES Client(ID);
之后我遇到了错误。 感谢您的帮助。
我想你想要以下内容。请注意,您可能应该在 Oracle 中使用 VARCHAR2
而不是 VARCHAR
。它们目前的工作方式相同,但 Oracle 可能会更改 VARCHAR
的功能以使其符合 ANSI 标准(其中空字符串 ''
与 NULL
s ...但我离题了):
CREATE TABLE client
( id NUMBER(10) NOT NULL PRIMARY KEY
, name VARCHAR2(30) NOT NULL
, surname VARCHAR2(30) NOT NULL
, phone NUMBER(11) NOT NULL
, email VARCHAR2(70) );
CREATE TABLE boss
( b_surname VARCHAR2(30) NOT NULL PRIMARY KEY
, b_Name VARCHAR2(30) NOT NULL );
然后:
ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);
列在 CLIENT
中命名为 surname
并且在 BOSS
中命名为 b_surname
有点奇怪。
如果您希望 BOSS
中的 b_surname
引用 CLIENT
中的 surname
-- 那么您需要将 CLIENT.surname
设为主键,或者至少是独一无二的。