Squeryl の Table.insert を使用して PostgreSQL テーブルに新しいレコードを挿入しようとすると、次のクエリが起動します。
insert into "users" ("id", "email", "fullname") values (nextval('"s_users_id"'),?,?)
シーケンスを定義せず、代わりに id 列を「自動インクリメント」に定義したため、これは機能しません。
CREATE TABLE Users (
id BIGSERIAL,
email varchar(255) NOT NULL,
fullname varchar(255),
PRIMARY KEY (id)
);
この問題に関する別のフォーラムの古い投稿を読みましたが、現在の状況はどうなっているのか疑問に思っていました。自動インクリメントを使用して代わりにシーケンスを定義することはお勧めできませんか? または、これを機能させるための簡単な回避策はありますか?
編集: 実際、自動インクリメント自体が別の名前でシリアルを作成することがわかりました: users_id_seq Squeryl に代わりにこの名前で調べるか、PostgreSQL の規則に従うように指示する方法はありますか?