如何在将新行插入表中时调用postgresql序列?
我想做这样的事情
insert into biz_term(
biz_term_id,
biz_term_name,
)
values(SELECT nextval(idsequence)',
'temp'
);
如何做到这一点?我想这样做,因为当我试图在biz_term表中插入新记录时,序列-idsequence没有被直接调用。任何解决方案?
答案 0 :(得分:85)
你几乎得到了它。你不需要那里的SELECT:
insert into biz_term(
biz_term_id,
biz_term_name,
)
values(
nextval('idsequence'),
'temp'
);
您没有将biz_term_id指定为serial
(或bigserial
)并自动为您处理的原因?
答案 1 :(得分:1)
尽管这是一个有点老的话题,但我想指出,使用 BIGINT
而反对 BIGSERIAL
的一个很好的理由是,如果您正在使用休眠。
这是文章:
https://vladmihalcea.com/postgresql-serial-column-hibernate-identity/
正如文章指出的那样,
<块引用>使用 SEQUENCE 生成器是更好的选择,因为 标识符可以在执行 INSERT 语句之前生成
发布答案,因为我还没有资格发表评论:/。如果您觉得不合适,我提前道歉。