「Mysql/外部キー」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→外部キー設定) |
(→外部キー設定) |
||
| 行1: | 行1: | ||
==外部キー設定== | ==外部キー設定== | ||
// 親テーブル | // 親テーブル | ||
| − | + | DROP TABLE IF EXISTS users; | |
| − | + | CREATE TABLE users( | |
| − | id | + | id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, |
| − | name | + | name VARCHAR(10) |
| − | ) | + | ) ENGINE=InnoDB; |
// 子テーブル | // 子テーブル | ||
| − | + | DROP TABLE IF EXISTS contents; | |
| − | + | CREATE TABLE contents( | |
| − | id | + | id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, |
| − | user_id | + | 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); // 失敗 | |
2016年8月15日 (月) 15:32時点における版
外部キー設定
// 親テーブル 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); // 失敗
