外部キー制約を使⽤する場合の注意事項
- 親テーブルおよび⼦テーブルでは FOREIGN KEY 制約の対象となるカラムに対してインデックスが必要
- ⼦テーブルの対象カラムと親テーブルの対象カラムは同じデータ型である必要がある
サンプル
create table db_name.parent_tb(department varchar(10) primary key);
insert into db_name.parent_tb
values('経理部'),
('営業部'),
('システム部'),
('企画部');
create table db_name.child_tb(id int, name varchar(10), department varchar(10),
index index_name(department),
foreign key fk_name (department) references parent_tb(department)
ON DELETE cascade ON UPDATE cascade );
insert into db_name.child_tb
values(1, 'Yamada', '経理部'),
(2, 'Suzuki', 'システム部'),
(3, 'Okada', '営業部'),
(4, 'Hosoda', 'システム部');
update db_name.parent_tb set department = '情報システム部' where department = 'システム部';
参考サイト
www.dbonline.jp