0

我现在使用的是 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);

并且表不包含序列,我现在应该怎么做才能获取主键?

4

1 回答 1

1

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

<table tableName="article">
  <generatedKey column="ID" sqlStatement="JDBC" />
</table>
于 2021-05-19T10:33:59.623 回答