如何从Postgresql中的会话到会话获得序列?
doubleemploi@hanbei:/home/yves$psql -d test Mot de passe : psql (8.4.13) Saisissez « help » pour l''aIDe. test=> create sequence test001 start 10; CREATE SEQUENCE test=> select currval('test001'); ERREUR: la valeur courante (currval) de la séquence « test00 » n''est pas encore définIE dans cette session --- current value not yet defined this session (???) test=> select setval('test001',10); setval -------- 10 (1 ligne) test=> select currval('test00'); currval --------- 10 (1 ligne) test=> \q test@hanbei:/home/yves$psql -d test Mot de passe : psql (8.4.13) Saisissez « help » pour l''aIDe. test=> select currval('test001'); ERREUR: la valeur courante (currval) de la séquence « test00 » n''est pas encore définIE dans cette session这可能比你想象的更简单
My objective is to get a primary key fIEld automatically inserted when
inserting new row in the table.
只需设置列的默认值即可:
ALTER table tbl ALTER ColUMN tbl_ID SET DEFAulT nextval('my_seq'::regclass);
或者更简单的是,为主键创建具有serial
类型的表,首先是:
CREATE table tbl( tbl_ID serial PRIMARY KEY,col1 txt -- more columns);
它创建一个专用序列,并自动设置tbl_ID的默认值.
这样,如果在INSERT中没有提到,tbl_ID将自动从附加的序列中分配下一个值.适用于任何会话,并行与否.
INSERT INTO tbl(col1) VALUES ('foo');
如果你想要新的tbl_ID做一些事情:
INSERT INTO tbl(col1) VALUES ('foo') RETURNING tbl_ID;总结
以上是内存溢出为你收集整理的postgresql – currval尚未定义此会话,如何获取多会话序列?全部内容,希望文章能够帮你解决postgresql – currval尚未定义此会话,如何获取多会话序列?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)