我的序列不能一直在postgreSQL上运行

时间:2013-05-06 10:15:22

标签: hibernate postgresql

使用postgres sql时遇到问题

我有一个添加文件夹(Web应用程序)的界面 我有一个表“文件”,列“ref_composant”我自动生成以下方式。:

每次插入记录时,我都会增加“ref_composant” Ref00001 在每次插入时递增Ref00002,Ref00003 .... 我使用PostgreSQL创建SQL reqette

    ref_deq character varying(10) DEFAULT ('ref'::text || lpad((nextval('seq_refcomposant'::regclass))::text, 6, '0'::text))

with sequence seq_refcomposant

我的问题是这个列不能为空。并且在我插入colone的某个时候是null

在不返回corect序列的情况下,我必须在此方法中做什么..它可以为null

1 个答案:

答案 0 :(得分:1)

您的问题是,在插入或修改行时(而不是在语句的末尾),会立即检查NOT NULL和CHECK约束。

要解决此问题,请使列可为空,在插入时使用before触发器填充它,并添加after约束强制执行非null约束。