我正在创建一个迷你DB处理类,为了方便起见,我希望我生成的INSERT查询总是尝试返回最后一个插入id或null,如果不适用的话。我试过用:
INSERT INTO ... RETURNING lastval();
它适用于具有序列的表,但如果表没有序列键字段,则不插入任何内容并且出现错误:lastval is not yet defined in this session
。
如何检入RERURNING
块,是否在此会话中使用了序列生成器,或者以无提示错误的方式静默返回最后一个id或null?
注意:出于可用性目的,我希望避免直接指定PK字段名称。
答案 0 :(得分:-1)
这是Postgres的问题。对于没有序列的表,它将显示此错误。