「Mysql/外部キー」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→外部キー設定) |
(→外部キー設定) |
||
行19: | 行19: | ||
INSERT INTO contents(user_id) VALUES(1); // 成功 | INSERT INTO contents(user_id) VALUES(1); // 成功 | ||
INSERT INTO contents(user_id) VALUES(4); // 失敗 | INSERT INTO contents(user_id) VALUES(4); // 失敗 | ||
+ | |||
+ | ==外部キー追加== | ||
+ | alter table contents | ||
+ | foreign key (user_id) references user(id) | ||
+ | |||
+ | ==親の更新、削除を子テーブルに連動させる場合== | ||
+ | 以下をつける | ||
+ | on delete cascade | ||
+ | on update cascade; |
2016年8月15日 (月) 15:48時点における版
外部キー設定
// 親テーブル DROP TABLE IF EXISTS users; CREATE TABLE users( id int NOT NULL PRIMARY KEY AUTO_INCREMENT, name varchar(10) ) ENGINE=InnoDB;
// 子テーブル DROP TABLE IF EXISTS contents; CREATE TABLE contents( id int NOT NULL PRIMARY KEY AUTO_INCREMENT, user_id int, FOREIGN KEY(user_id) REFERENCE users(id) ) ENGINE=InnoDB; INSERT INTO users(name) VALUES('test1'); INSERT INTO contents(user_id) VALUES(1); // 成功 INSERT INTO contents(user_id) VALUES(4); // 失敗
外部キー追加
alter table contents foreign key (user_id) references user(id)
親の更新、削除を子テーブルに連動させる場合
以下をつける
on delete cascade on update cascade;