kikeda1104's blog

備忘録・技術に関することを書いています。(webエンジニア)

MySql 外部参照制約

こんにちは。kikedaです。

スキーマを作成して、外部参照制約をつける機会があったので、備忘録です。Googleで検索することはあるんですが、やはり自分のブログを検索して、作業する機会が多いので「他人」より「自分」に向けての、記事を多くなりそうです。

MySqlの外部参照制約

MySqlで外部キーを持つテーブルで、関係を記述することにより、外部キーの元となるマスタテーブルの値もしくは、テーブルそのもの削除と更新を防止することができます。挙動については、指定するパラメータにより細かく変えることができますが、今回の目的は、マスタテーブルのレコードを、外部キーが参照しているレコードが存在する間は、削除と更新を防止させます。 親のレコードが消されて、つながりが示されなくなるのを防ぎます。

外部参照制約をつける。

> alter table table_name add constraint 制約名 foreign key (外部キーの列名) references テーブル名(列名) on delete cascade on update cascade;

MySql Workbenchを利用することで、データベースやテーブルを定義をして、Sqlを作成することができますので、そちらから利用することもオススメです。

以上です。