postgresql 如何获取上次插入的Uuid?

klh5stk1  于 5个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(97)

在psql上创建Uuid列时,我无法让LAST_瓦尔工作:

CREATE TABLE t (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    title text NOT NULL
);

# insert into t (title) values ('hello'), ('world');
INSERT 0 2
# select LASTVAL();
ERROR:  lastval is not yet defined in this session

字符串

qij5mzcb

qij5mzcb1#

为了澄清这个混淆,nextval()lastval()sequence manipulation functions,而gen_random_uuid()与序列无关。
需要说明的是,currval()lastval()nextval()结合使用是完全安全的。两者都返回一个会话本地值,并发会话(=并发事务)不会干扰它。请参阅:

  • 同一时间内另一列中序列列的参考值

使用前面建议的RETURNING子句。在任何情况下都有效。

相关问题