できるPRO MySQL できるPROシリーズ Kindle版の内容をまとめる。
CREATE TABLE テーブル名 (
列名 データ型,
…
FOREIGN KEY (外部キーにする列名)
REFERENCES 参照先テーブル名(主キー)
);
CREATE TABLE divisions(
id INT PRIMARY KEY,
name VARCHAR(16)
);
MariaDB [dekirusample2]> CREATE TABLE divisions(id INT PRIMARY KEY,name VARCHAR(16));
Query OK, 0 rows affected (0.12 sec)
INSERT INTO divisions VALUES
(0, '営業部'),
(1, '総務部');
MariaDB [dekirusample2]> INSERT INTO divisions VALUES (0, '営業部'),(1, '総務部');
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
CREATE TABLE employees(
name VARCHAR(16),
division_id INT,
FOREIGN KEY(division_id) REFERENCES divisions(id)
);
MariaDB [dekirusample2]> CREATE TABLE employees(name VARCHAR(16),division_id INT,FOREIGN KEY(division_id) REFERENCES divisions(id));
Query OK, 0 rows affected (0.07 sec)
divisions
)にある値を挿入INSERT INTO employees VALUES
('太宰治',0),
('大庭葉蔵',1);
MariaDB [dekirusample2]> INSERT INTO employees VALUES ('太宰治',0),('大庭葉蔵',1);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
divisions
)にない値を挿入INSERT INTO employees VALUES
('小林多喜二',2);
MariaDB [dekirusample2]> INSERT INTO employees VALUES ('小林多喜二',2);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`dekirusample2`.`employees`, CONSTRAINT `employees_ibfk_1` FOREIGN KEY
(`division_id`) REFERENCES `divisions` (`id`))