Мне нужно удалить связанные строки из таблицы «назначить», когда член экипажа будет удален.Удаление связанных строк из других таблиц без первичного ключа
Однако, когда я создаю таблицы, я получаю ошибку:
ERROR: there is no unique constraint matching given keys for referenced table "assign"
Кажется, что мне нужно различные значения в таблице «Заданные», но все дело в том, что я хочу, чтобы удалить все когда информация о членах экипажа удалена. Как я могу это сделать?
create table flight(
flight_num BIGSERIAL PRIMARY KEY,
source_city varchar,
dest_city varchar,
dep_time int,
arr_time int,
airfare int,
mileage int
);
create table crew (
id BIGSERIAL PRIMARY KEY,
name varchar,
salary int,
position varchar,
seniority int,
fly_hours int,
mgrid int,
FOREIGN KEY (id) REFERENCES assign(id) ON DELETE CASCADE
);
create table assign (
id int, # refers to a crew member id, not a row id
flight_num int
);
Чтобы уточнить, столбец «id» в присваивании относится к идентификатору члена экипажа, поэтому он может иметь несколько одинаковых идентификаторов в этом столбце, поскольку один член экипажа может быть назначен нескольким полетам. –