mysql 批量插入 获取所有自增ID

mysql 批量插入 获取所有自增ID,第1张

1、没谷歌到php可以用的直接方法,不过可以获取批量插入的第一个自增id 2、假设批量插入的数据的自增ID是连续的,则可以通过第一个自增ID获取所有自增ID 3、测试批量插入的数据的自增ID是否是连续的,即插入过程中,单独插入其他数据,批量插入的自增ID是否连续 4、生成批量插入10w条数据的sql 5、navicat打开两个页面,一个是上面的sql,一个是一条单独插入的sql(这条sql的test_id,要大于上面sql里随机数的最大值,方便查看) 6、所以可以使用2中的方式获取批量插入的所有自增ID

因为MySQL本身支持auto_increment *** 作,很自然地,我们会想到借助这个特性来实现这个功能。Flicker在解决全局ID生成方 案里就采用了MySQL自增长ID的机制(auto_increment + replace into + MyISAM)。一个生成64位ID方案具体就是这样的:

先创建单独的数据库(eg:ticket),然后创建一个表:

CREATE TABLE Tickets64 (

id bigint(20) unsigned NOT NULL auto_increment,

stub char(1) NOT NULL default '',

PRIMARY KEY (id),

UNIQUE KEY stub (stub)

) ENGINE=MyISAM

如果不考虑多连接影响而只是获取下一条自增id可以这样做: select max(id) 获取最大id 然后加1。如果你想根据此id插入数据就会有问题,因如果获取到最大id后如果另一个连接新增了一条数据就会出问题,标准做法是先插入数据然后获取插入的id mysql数据库可用:select last_insert_id()获取插入的id,就算另一个连接新增了一条数据select last_insert_id()也不会是插入的id值,而只是当前连接的插入的id值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8704592.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存