用火车采集数据库发布,sql语句时这样的:
INSERT INTO wp_posts (post_title,post_content) VALUES (‘[标签:标题]’,'[标签:内容]’) 如果开启多线程发布, 我理解的是 多线程插入的话,顺序是不是就混乱了? |
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的 Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update 操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。使用单INSERT语句插入多条记录, LAST_INSERT_ID返回一个列表
用这个 LAST_INSERT_ID函数 即可! 这个函数执行效率更高 |
那你就别获取上一条自增ID, 获取这个执行结果的结果集然后拿ID就行! |
啊没懂。。。 |
https://www.runoob.com/php/func-mysqli-fetch-array.html |
mysql不是有自增的设置嘛,设置好后不需要填写ID字段,且mysql是单线程执行的,不用担心冲突 |
怎么设置啊大佬,wordpress不同表就是靠自增id来关联的啊。。 mysql只是在写阶段是单线程独占的吧,两条insert之间,也可能被其它线程插队插入的吧。。 |
mysql有锁机制,创建表的时候主键交给mysql自增就可以了,没必要自己控制主键 |
创建表的时候主键交给mysql自增就可以了 |