先に結論。DEFERRED, DEFERRABLEという単語を覚えてお帰りくださいませ。 そして先にごめんなさい。SQL ServerとMySQLはDEFERRED, DEFERRABLEを未サポートですのでこの記事の内容は使えません。 さて話のはじめから。 こんな条件のデータを格納したくなったとしてください。 顧客は担当者をもつ。 歴代の担当者が複数いるかもしれないが、現在の担当者が必ず一人いる。素直にER図で書くとこんな感じ。 テーブル同士が外部キー参照し合っています。あれ、そんなことできるんだっけ? というお話です。 お互いに外部キー参照する 実際書いてみましょう。 -- 顧客 create table 顧客 ( 顧客ID INT NOT NULL PRIMARY KEY , 法人名 VARCHAR(64) NOT NULL , 現担当者ID INT NOT NULL , CONST
![外部キー参照しあうテーブルを遅延制約で実現する - C Sharpens you up](https://cdn-ak-scissors.b.st-hatena.com/image/square/90739cdee7f36622c0c873a2903609723d2011b8/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2FS%2FSampo%2F20130712%2F20130712233940.png)