- 締切済み
POSTGRESQLデフォルトのシーケンス値を強制
以下の(2)(3)のaをデフォルトであるシーケンスの値を強制入力しエラーを回避する方法はありますか? create sequence testseq start 1; create table test(a int not null default nextval('testseq'), b int); --(1)成功 insert into test (b) values(0); --(2)エラー insert into test (a,b) values(null,0); --(3)エラー insert into test values(null,0);
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
serial型利用してみてはいかがですか。
お礼
以下で解決しました drop table test; drop function test2; drop trigger test3; drop sequence test4; create sequence test4 start 1; create table test(a int, b int); CREATE FUNCTION test2() RETURNS trigger AS $test$ BEGIN NEW.a = nextval('test4'); RETURN NEW; END; $test$ LANGUAGE plpgsql; CREATE TRIGGER test3 BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE test2();
補足
だめですね 同じ結果でした