#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS