2013-05-06 19 views
0

我遇到的時候使用的是Postgres的sql我的順序不是一直工作PostgreSQL的

我有一個inteface添加文件夾(Web應用程序)的問題 我會自動有一個表「文件」與列「ref_composant」我生成以下方式:

每次插入一條記錄,我遞增在各插入了「ref_composant」 Ref00001 遞增Ref00002,Ref00003 .... 我創建SQL reqette PostgreSQL的

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

with sequence seq_refcomposant 

我的問題是,這個列不能爲空。在當我插入加冒號一段時間是空

我有這個方法做,而不必返回corect序列..它可以爲null

+1

顯示插入命令 – 2013-05-06 11:22:47

+0

我使用hibernate! 。了getSessionFactory()的getCurrentSession()saveOrUpdate(COMP)。 – FERESSS 2013-05-06 11:25:17

+0

有一個Persoone告訴我,PostgreSQL有一個默認的這個命令..我試着用triger – FERESSS 2013-05-06 11:26:30

回答

1

您的問題是NOT NULL和CHECK約束總是在插入或修改行時(不在語句結尾處)立即檢查。

要解決此問題,請將列設爲可空,使用before觸發器將其填充到插入上,並添加after約束來強制執行not null約束。

+0

當我插入一行與我的應用程序這一欄不起作用.. 總是空的。通過利弊,當我手動插入pgAdmin框是空的,但是當我刷新線,它需要我想要的值。 – FERESSS 2013-05-06 11:49:43