zoukankan      html  css  js  c++  java
  • 如何获取主键返回值(MySQL、Oracle)

    添加用户、返回主键

    --场景:在执行新增用户sql后,service层返回新增用户的主键值(与mybatis一起使用)

              insert into user(username, sex, birthday) values(#{username}, #{sex}, #{birthday})

    1.  数据库MySQL  主键自增

         执行insert提交之后自动生成一个自增主键。

         通过mysql的函数获取到刚刚插入记录的自增主键。LAST_INSERT_ID();

    1 <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
    2              Select LAST_INSERT_ID();
    3 </selectKey>
    4 insert into user(name, age, sex, birthday) 
    5                values(#{name}, #{age}, #{sex}, #{birthday})
    View Code

    2.  数据库MySQL  主键非自增

         通过mysql的UUID()查询到主键,需要修改表中的id字段类型为String,长度设置为35位。

         执行思路:  先通过uuid()查询到主键,将主键输入到sql语句中。
                        执行uuid()语句顺序,是相对于insert语句之前执行。

    1 <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
    2            Select UUID();
    3 </selectKey>
    4 insert into user(id, name, age, sex, birthday) 
    5                 values(#{id}, #{name}, #{age}, #{sex}, #{birthday})
    View Code

    3.  数据库Oracle  主键序列

        执行思路: 先通过 序列名.nextval 得到主键,将主键输入到sql语句中。
                     执行 序列名.nextval 语句顺序,是相对于insert语句之前执行。

    1 <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
    2            Select 序列名.nextval;
    3 </selectKey>
    4 insert into user(id, name, age, sex, birthday) 
    5                values(#{id}, #{name}, #{age}, #{sex}, #{birthday})  
    View Code

        

        

      

  • 相关阅读:
    LINUX重启MYSQL的命令
    如何在linux下实现mysql数据库每天自动备份
    mysql 2013错误解决
    mysql按年度、季度、月度、周、日统计查询的sql语句
    MySQL 时间戳(Timestamp)函数
    jQuery 选择器大全总结
    使用Git的Push出现rejected
    js实现分页的几个源码,看完基本就懂了
    Get,Post请求中文乱码问题有效解决方法
    web应用中文乱码问题的原因分析
  • 原文地址:https://www.cnblogs.com/qianbing/p/6972508.html
Copyright © 2011-2022 走看看