美文网首页Java
[zebra源码]insert后获取自增值的处理

[zebra源码]insert后获取自增值的处理

作者: holysu | 来源:发表于2021-05-02 02:20 被阅读0次

    sql语句:

    (1) insert into [table] xx  values(x,x,xx);
    (2) select @@Identity; 或 select last_insert_id();
    

    比如这种常见的 insert 后要获取自增主键值的, 需要在同一个连接同一个statement操作

    如先 Statement#executeUpdate("insert into [table] xx values(x,x,xx);") , 然后再用同一个statement#executeQuery("select @@Identity;") 获取自增值

    1. 执行第一条语句后 zebra 会先把第一条sql语句执行后 原生 jdbc Statement#getGeneratedKeys() 返回的 ResultSet 缓存在ShardStatement 里
    2. 等后面的语句执行到 select @@identity; 的时候 直接返回 generatedKey

    相关文章

      网友评论

        本文标题:[zebra源码]insert后获取自增值的处理

        本文链接:https://www.haomeiwen.com/subject/tfttdltx.html