🐘

Supabase id -> 自動連番idに変更

2024/06/04に公開

Tips💡

Supabaseでテーブルに自動連番のidの設定をし忘れた(−_−;)

[error code]

例外が発生しました PostgrestException (PostgrestException(message: null value in column "id" of relation "dev_relationships" violates not-null constraint, code: 23502, details: Failing row contains (null, 1, 1, null)., hint: null))

エラーを解決しなくてはデータを追加できない💦

ALTER TABLEを実行して、テーブル定義を変更する。

[Example]

CREATE SEQUENCE dev_relationships_id_seq;

ALTER TABLE dev_relationships
ALTER COLUMN id SET DEFAULT nextval('dev_relationships_id_seq');

ALTER SEQUENCE dev_relationships_id_seq OWNED BY dev_relationships.id;

できた\(^^)/ 

このクエリは、まずdev_relationships_id_seqという名前の新しいシーケンスを作成します。次に、dev_relationshipsテーブルのidカラムのデフォルト値を、このシーケンスの次の値に設定します。最後に、シーケンスをdev_relationshipsテーブルのidカラムに所有させます。これにより、テーブルが削除されるときにシーケンスも自動的に削除されます。

ただし、この操作は既存のテーブルに対して行うと、既存のデータに影響を及ぼす可能性があります。そのため、この操作を行う前には必ずデータのバックアップを取るなど、適切な対策を行ってください。


先ほどは、データの挿入ができなかったのですが、問題なくおこなえました。fcm_tokenというカラムは、nullのデータが入ったらクラッシュするので、FCM Tokenを保存しています。

Discussion