如何检查postgres定义了lastval()

时间:2015-10-07 11:55:24

标签: postgresql

我正在创建一个迷你DB处理类,为了方便起见,我希望我生成的INSERT查询总是尝试返回最后一个插入id或null,如果不适用的话。我试过用:
INSERT INTO ... RETURNING lastval();
它适用于具有序列的表,但如果表没有序列键字段,则不插入任何内容并且出现错误:lastval is not yet defined in this session

如何检入RERURNING块,是否在此会话中使用了序列生成器,或者以无提示错误的方式静默返回最后一个id或null?

注意:出于可用性目的,我希望避免直接指定PK字段名称。

1 个答案:

答案 0 :(得分:-1)

这是Postgres的问题。对于没有序列的表,它将显示此错误。