WEBに転がってる情報が名前つけないで作成するのばかりだった
FOREIGN KEY
を作成するブログを検索すると、名前を付けて作成するとったエントリーが見当たらない。
ほとんどは以下の様なクエリが書いてある。
ALTER TABLE `child_table`
ADD FOREIGN KEY `parent_id` REFERENCES `parent_table` (`parent_id`)
こうやってFOREIGN KEY
を作成すると、作成したFOREIGN KEYはシステムが勝手に名前を付けてくれる。
名前を付けてやる
INDEX
の作成時にINDEX
に名前を付けられるように、FOREIGN KEY
にも名前を付けて作成することが出来る。
CONSTRAINT [foreign key name]
オプションを付けてあげればいい。
CREATE_TABLE時
CREATE TABLE `child_table` (
`child_id` INT NOT NULL,
`parent_id` INT NOT NULL,
PRIMARY KEY (`child_id`),
INDEX `idx_parent_id` (`parent_id`),
CONSTRAINT `fkey_parent_table_parent_id` FOREIGN KEY (`parent_id`) REFERENCES `parent_table` (`parent_id`)
)
ENGINE=InnoDB;
ALTER_TABLE時
ALTER TABLE `child_table`
ADD CONSTRAINT `fkey_parent_table_parent_id` FOREIGN KEY `parent_id` REFERENCES `parent_table` (`parent_id`)
何故名前をつけるのか?
ちょっとFOREIGN KEY
を削除したいと思った時に、、わざわざ名前を調べなくても削除出来るので便利なんです。