Не можете добавить внешний ключ здесь?

0

Поэтому я пытаюсь создать таблицы, и я не могу понять, почему я понимаю, почему я продолжаю получать и ошибаться, говоря "Не могу добавить внешний ключ к ограничению".

Типы одинаковы, родительский - это первичный ключ, и они NULLness одинаковы.

Проблема заключается в строке в таблице создания для CDSingers, где говорится:

foreign key (track_num) references CDTracks (track_num),

(это ближе к концу) Это единственная таблица, которая не будет создана и из-за этой строки. Пожалуйста помоги. (некоторые другие таблицы были опущены, поскольку они не связаны)

create table CD 
(
num int NOT NULL, 
producer varchar(100) NOT NULL, 
cd_number varchar(100) NOT NULL, 
title varchar(100) NOT NULL, 
type varchar(100) , 
band_name varchar(100) , 
production_date DATE NOT NULL, 
price double CHECK (price >= 0),
foreign key (type) references MusicType (type), 
foreign key (band_name) references Band (band_name),
primary key (num),
unique (producer, cd_number)
);

create table CDTracks
(
num int NOT NULL,
track_num int NOT NULL,
song_name varchar(100) NOT NULL,
minute int NOT NULL,
foreign key (num) references CD (num),
primary key (num, track_num)
);

create table Singer
(
id int NOT NULL,
singer_firstname varchar(100) NOT NULL,
singer_lastname varchar(100) NOT NULL,
primary key (id)
);

create table CDSingers
(
num int NOT NULL,
track_num int NOT NULL,
singer_id int NOT NULL,
foreign key (num) references CDTracks (num),
foreign key (track_num) references CDTracks (track_num),
foreign key (singer_id) references Singer (id),
primary key (num, track_num, singer_id)
);
Теги:
foreign-keys

1 ответ

2

Вы объявляете составные внешние ключи следующим образом:

foreign key (num, track_num) references CDTracks (num, track_num),
  • 0
    Я тупой, большое спасибо
  • 0
    @CharlesKing. , , Не за что. Я предполагаю, что вы учитесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню