2009年1月22日木曜日

嘘のような本当の話

情報処理技術者試験、今度はテクニカルのデータベースを受験することに。
MySQL を利用して勉強しようと考え、とりあえず CREATE 系のおさらいを
しようと思い、テーブルを作成してみようと思ったら、
なにやらエラーが出る。(エラーは覚えてないけど。)

CREATE TABLE IF NOT EXISTS sales_body
(
id INT NOT NULL PRIMARY KEY
,row_num INT NOT NULL
,goods_id INT NOT NULL
,num INT NOT NULL CHECK (num BETWEEN 1 AND 99)
,FOREIGN KEY (goods_id) REFERENCES goods(id) ON DELETE SET NULL
) ENGINE=InnoDB;

ネットで調べると、やれ INDEX 張らないといけないとか
InnoDB の設定が必要とか
イロイロあったけど、この DDL の場合単純に、

  • NOT NULL 属性に削除時 NULL を設定する


なんていう矛盾外部キーを指定していたため、作成できなかった。
びっくり。

0 件のコメント: