如何使用标识为序列在 PostgreSQL 13 中获取 MyBatis 插入主键值

how to get MyBatis insert primary key value in PostgreSQL 13 using identify as sequece

我现在使用的是PostgreSQL 13,使用MyBatis插入记录后,需要获取插入记录的主键。以旧的方式,我使用的是串口,配置是这样的:

 <table tableName="article"
            enableCountByExample="true"
            enableUpdateByExample="true"
            enableDeleteByExample="true"
            enableSelectByExample="true"
            selectByExampleQueryId="true">
            <generatedKey column="ID" sqlStatement="SELECT currval('article_id_seq')" identity="true" />
        </table>

最近我将 PostgreSQL 主键切换为标识(我阅读了 PostgreSQL 手册并告诉我这是生成串行主键的更好方法),如下所示:

ALTER TABLE rss_sub_source 
    ALTER id SET NOT NULL,  -- optional
    ALTER id ADD GENERATED ALWAYS AS IDENTITY 
        (START WITH 1233);

而table不包含序列,请问现在如何获取主键?

最好的方法是使用对生成密钥的原生 JDBC 支持。 JDBC 驱动程序将检索新值。你可以在 MyBatis Generator 中这样设置:

<table tableName="article">
  <generatedKey column="ID" sqlStatement="JDBC" />
</table>