些細なところで、あれ、どうしたらいいんだとなったので、残しておく。
カラム追加と外部キー名指定とインデックス名を指定したい場合は以下のように書ける。
CREATE TABLE `article_types` (
`id` int NOT NULL,
...
);
ALTER TABLE `articles`
ADD COLUMN `article_type_id` INT NOT NULL COMMENT '記事種別',
ADD INDEX `index_article_type_id` (`article_type_id`), // index名を付けたい場合
ADD CONSTRAINT `fk_articles_article_type_id` FOREIGN KEY (`article_type_id`)
REFERENCES `article_types` (`id`)
ON DELETE RESTRICT
ON UPDATE CASCADE;
外部キーを設定すると自動でインデックスが作成されます。xxx_ibfkというような名前で。
独自に名前を決めたい場合は、
ADD INDEX `インデックス名` (`カラム名`)
逆に消すときは
ALTER TABLE `articles`
DROP FOREIGN KEY `fk_articles_article_type_id`,
DROP COLUMN `article_type_id`;