• 締切済み

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);

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

serial型利用してみてはいかがですか。

oijopsdjfgs7936
質問者

お礼

以下で解決しました 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();

oijopsdjfgs7936
質問者

補足

だめですね 同じ結果でした