我正在使用DB2創建一些表。我有2個表看起來像這樣:引用另一個表中的多個主鍵
create table TEST_TABLE1
/* */
(
PRIMARY_COLUMN1 int not null,
PRIMARY_COLUMN2 varchar(50) not null,
primary key (PRIMARY_COLUMN1,PRIMARY_COLUMN2)
);
create table TEST_TABLE2
/* */
(
PRIMARY_COLUMN1 int references TEST_TABLE1(PRIMARY_COLUMN1) not null,
PRIMARY_COLUMN2 varchar(50) references TEST_TABLE1(PRIMARY_COLUMN2) not null,
primary key(PRIMARY_COLUMN1,PRIMARY_COLUMN2)
);
當我嘗試添加的表,我得到這個錯誤:
SQL0573N A column list specified in the references clause of constraint
"PRIMARY_COLUMN1..." does not identify a unique constraint of the parent table
or nickname "DB2INST1.TEST_TABLE1". SQLSTATE=42890
有誰知道我怎樣才能TEST_TABLE2參考TEST_TABLE1?
我也試圖這樣創造TEST_TABLE2,並得到了同樣的錯誤:
create table TEST_TABLE2
/* */
(
PRIMARY_COLUMN1 int references TEST_TABLE1(PRIMARY_COLUMN1) not null,
primary key(PRIMARY_COLUMN1)
);
感謝, 賈斯汀
你這裏是什麼**,恰好包含多個列一個**主鍵(又名「複合」或「複合」 PK) 。既然你只有一個PK,你只需要一個FK來引用它。但是你需要引用** whole ** PK,而不僅僅是其中的一列。 – 2014-09-10 23:32:12