Я использую 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) , Поскольку у вас есть только один ПК, вам нужен только один FK для его ссылки. Но вам нужно ссылаться на ** whole ** PK, а не только на одну из ее колонок. –