差分

Tep3-onk-2

636 バイト追加, 2023年6月27日 (火) 09:43
あとから外部キー制約を追加する手順
hoge_idを削除する
ALTER TABLE journals DROP COLUMN hoge_id;
 
=== エラー ===
例えば待避したhoge_idを戻すとき次のようなエラーがでる
<nowiki>=# UPDATE journals SET schedule_id = hoge_id;
ERROR: insert or update on table "journals" violates foreign key constraint "fk_rails_9d4d4268db"
DETAIL: Key (schedule_id)=(970) is not present in table "schedules".</nowiki>
journalsテーブルのschedule_idがschedulesテーブルにないのでそれを拾い出して削除する
<nowiki>=# delete from journals where hoge_id in (
SELECT id FROM schedules
EXCEPT
SELECT hoge_id FROM journals
UNION ALL
SELECT hoge_id FROM journals
EXCEPT
SELECT id FROM schedules);</nowiki>
== gemアップデート ==