2013-05-06 2 views
0

я столкнулся с проблемами при использовании Postgres SQLМоя последовательность не работает все время PostGreSQL

У меня есть inteface добавить папку (веб-приложение) У меня есть таблица «файл» с колонкой «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 последовательность .. это может быть пустым

+1

Показать команду вставки –

+0

Я работаю в спящем режиме !! . GetSessionFactory() getCurrentSession() saveOrUpdate (ср.); – FERESSS

+0

есть Persoone сказал мне, что PostgreSQL имеет значение по умолчанию с этой командой .. и я попытался с triger – FERESSS

ответ

1

Ваша проблема заключается в том, что NOT NULL и проверочные ограничения всегда проверяется сразу, когда строка вставлена ​​или изменена (не в конце инструкции).

Чтобы обойти это, сделайте столбец «nullable», перед тем, как триггер заполнить его на вставках, и добавьте ограничение после принудительного применения ограничения, отличного от нуля.

+0

, когда я вставляю строку с моим приложением, этот столбец не работает. всегда пуст. минус, когда я вставляю вручную с полем pgAdmin, пуст, но когда я обновляю строку, он принимает значение, которое я хочу. – FERESSS

Смежные вопросы