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);
■後から、入れたカラム(外部キー制約はついていない)に、外部キー制約をつけたくなった場合
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);
[参考リンク]
外部キー貼り直し手順メモ