Передо мной стоит небольшая задача. (База данных DB2)
Мне нужно создать таблицу, которая будет дочерней таблицей (это то, что она называется в SQL?)
Мне нужно, чтобы у него было ограничение внешнего ключа с моей другой таблицей, чтобы при изменении родительской таблицы (удаление записи) дочерняя таблица также теряла эту запись.
После того, как у меня есть таблица, мне также нужно заполнить ее данными из другой таблицы (если есть простой способ UPDATE
этого).
Если бы вы указали мне правильное направление, это бы очень помогло, поскольку я даже не знаю, какой синтаксис искать.
Таблица у меня на месте:
create table titleauthors (
au_id char(11),
title_id char(6),
au_ord integer,
royaltyshare decimal(5,2));
Таблица, которую я создаю:
create table titles (
title_id char(6),
title varchar(80),
type varchar(12),
pub_id char(4),
price decimal(9,2),
advance decimal(9,2),
ytd_sales integer,
contract integer,
notes varchar(200),
pubdate date);
Мне нужно, чтобы title_id сопоставлялся с title_id из родительской таблицы И использовать синтаксис ON DELETE CASCADE для удаления при удалении этой таблицы из.
Моя попытка:
CREATE TABLE BookTitles (
title_id char(6) NOT NULL CONSTRAINT BookTitles_title_id_pk REFERENCES titleauthors(title_id) ON DELETE CASCADE,
title varchar(80) NOT NULL,
type varchar(12),
pub_id char(4),
price decimal(9,2),
advance decimal(9,2),
ytd_sales integer,
contract integer,
notes varchar(200),
pubdate date)
;