k01ken’s b10g

He110 W0r1d!

MySQLで一度テーブルを作ってから追加で変更したい場合のまとめ

開発環境は、Winwdows10 Pro(64bit)。

■データベースのカラムの入れ忘れ、あるいは、後から、カラムを追加したくなった場合

ALTER TABLE tasks ADD is_favorited BOOLEAN DEFAULT FALSE AFTER list_id;
ALTER TABLE tasks ADD user_id INTEGER NOT NULL AFTER list_id;
ALTER TABLE favorites ADD user_id INTEGER NOT NULL AFTER favorite_id;
ALTER TABLE sessions ADD session_key VARCHAR(255) NOT NULL AFTER id;

■後から、入れたカラムにインデックスを貼り付けたい場合

ALTER TABLE sessions ADD INDEX sessions_sessionkey_idx(session_key);

[参考リンク]
MySQLでインデックスを追加するSQLと削除するSQLを実行しました

■後から、入れたカラム(外部キー制約はついていない)に、外部キー制約をつけたくなった場合

ALTER TABLE tasks ADD CONSTRAINT tasks_user_id FOREIGN KEY (user_id) REFERENCES users(id);
ALTER TABLE favorites ADD CONSTRAINT favorites_user_id FOREIGN KEY (user_id) REFERENCES users(id);

[参考リンク]
外部キー貼り直し手順メモ