
你可以看看这里,大致有三种办法:
#方法一是使用last_insert_idSELECT LAST_INSERT_ID()
#方法二是使用max(id),但是不适用高并发环境下。
方法三是创建一个存储过程,在存储过程中调用先插入再获取最大值的 *** 作
#方法四使用@@identity
select @@IDENTITY
#基本MySQL的学习,可以学习这里。使用MariaDB数据库管理系统。 linuxprobe.com/chapter-18.html
#出处:
你可以在执行完insert语句后,马上执行select LAST_INSERT_ID()这个函数就可以获取到"刚增记录的自增主键值"了。给你个示例:
http://www.javaeye.com/topic/393951
如果你是用jdbc的,可以利用其API,参考代码如下:
Connection conn = DriverManager.getConnection(连接参数)
Statement stmt = conn.executeUpdate(insert sql)
ResultSet genKeys = stmt.getGeneratedKeys()
你可以先用sql语句查询出数据库的结构,就可以知道那个字段是主键。如果你插入的数据不包含主键,那么主键就是由数据库生成的,比如是自增序列或uuid,这时候需要从数据库中读取出来,你可以用刚才插入的数据作为条件查询,同时选择只取一条记录,当然这种方式也不是很可靠,尤其是高并发下;如果插入数据包含主键,那么返回值就在你插入数据的对应位置。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)