#author("2019-09-18T16:27:20+09:00","default:ryuichi","ryuichi")
#author("2019-09-18T16:27:56+09:00","default:ryuichi","ryuichi")
* 外部キーを作成する [#jb5a73d7]
** CREATE TABLEでテーブル作成時に外部キーを作成する [#m54dbc22]
CREATE TABLE t1 ( id int, PRIMARY KEY (id) );
CREATE TABLE t2 ( id int, t1_id int, FOREIGN KEY (t1_id) REFERENCES t1(id) );
- t1のidにはINDEXを作成する(この場合、PRIMARY KEYを作成している)
** ALTER TABLEで後から外部キーを作成する [#j13f698e]
CREATE TABLE t1 ( id int, PRIMARY KEY (id) );
CREATE TABLE t2 ( id int, t1_id int);
CREATE TABLE t2 ( id int, t1_id int );
ALTER TABLE t2 ADD FOREIGN KEY (t1_id) REFERENCES t1(id)
** 外部キー名を指定して作成する [#h6967e65]
CREATE TABLE t2 ( id int, t1_id int, CONSTRAINT fk_t1_id FOREIGN KEY (t1_id) REFERENCES t1(id) );
ALTER TABLE t2 ADD CONSTRAINT fk_t1_id FOREIGN KEY (t1_id) REFERENCES t1(id)
- ここではfk_t1_idが外部キー名
- 指定しない場合は勝手に作られる
** 外部キーの削除 [#p20394a9]
ALTER TABLE t2 DROP FOREIGN KEY fk_t1_id;
- fk_t1_idは外部キー名。分からない場合は、'''SHOW CREATE TABLE t2''' で調べる
** 参考 [#mcf1bb44]
- https://dev.mysql.com/doc/refman/5.6/ja/create-table-foreign-keys.html
- https://stackoverflow.com/questions/10028214/add-foreign-key-to-existing-table