用火车采集数据库发布,sql语句时这样的:
INSERTINTOwp_posts(post_title,post_content)VALUES([标签:标题],[标签:内容])
INSERTINTOwp_term_relationships(object_id,term_taxonomy_id)VALUES([文章编号:wp_posts],[termid变量])
如果开启多线程发布,
会不会导致第二条语句中的post的自增id,跟第一条语句对不上?
我理解的是
[文章编号:wp_posts]获取的是最后一次插入post的自增id。
多线程插入的话,顺序是不是就混乱了?
-----------------------------------------------------
网友回复:
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insertorupdate操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的ID而不用担心其它客户端的活动,而且不需要加锁。使用单INSERT语句插入多条记录,LAST_INSERT_ID返回一个列表
用这个LAST_INSERT_ID函数即可! 这个函数执行效率更高
网友回复:
那你就别获取上一条自增ID,获取这个执行结果的结果集然后拿ID就行!
网友回复:
引用:Salta发表于2022-5-119:04
那你就别获取上一条自增ID,获取这个执行结果的结果集然后拿ID就行!
网友回复:
引用:igoogle发表于2022-5-119:11
啊没懂。。。
怎么拿结果集的ID啊?
网友回复:
mysql不是有自增的设置嘛,设置好后不需要填写ID字段,且mysql是单线程执行的,不用担心冲突
网友回复:
引用:nnt发表于2022-5-119:47
mysql不是有自增的设置嘛,设置好后不需要填写ID字段,且mysql是单线程执行的,不用担心冲突 ...
网友回复:
引用:igoogle发表于2022-5-120:03
怎么设置啊大佬,wordpress不同表就是靠自增id来关联的啊。。
mysql只是在写阶段是单线程独占的吧,两条...
网友回复:
自增的id直接交给数据库处理就行了吧,插入时候自己不需要填写
网友回复:
第一、自增ID用primarykey自增。
第二、LAST_INSERT_ID
第三、id设置uniq,用trycatch来获取maxid
网友回复:
这么简单的问题wp早考虑到了 用wp自带的方法就可以了
网友回复:
引用:Salta发表于2022-5-119:37
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基...
网友回复:
引用:cnly1987发表于2022-5-121:32
第一、自增ID用primarykey自增。
第二、LAST_INSERT_ID
第三、id设置uniq,用trycatch来获取maxid
网友回复:
引用:委员发表于2022-5-121:32
这么简单的问题wp早考虑到了 用wp自带的方法就可以了
网友回复:
引用:Salta发表于2022-5-119:37
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基...
网友回复:
引用:igoogle发表于2022-5-121:46
感谢大佬解惑,涨姿势了。
还有一点疑问,火车采集使用的系统标签[文章编号:xxx],应该用的就是maxid吧...
网友回复:
引用:蜗牛也是牛发表于2022-5-123:27
作为菜鸟,我看的似懂非懂,但大受震撼
网友回复:
引用:Salta发表于2022-5-119:37
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基...
网友回复:
引用:Salta发表于2022-5-119:37
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基...
网友回复:
没问题,你这担心多虑了。我前几天刚刚三线程发布,一点问题都没有
网友回复:
引用:chable发表于2022-5-307:03
没问题,你这担心多虑了。我前几天刚刚三线程发布,一点问题都没有
网友回复:
引用:igoogle发表于2022-5-312:26
有问题的,你同时多个任务,发布同一个数据库,多条语句
就会发现出问题了。。
我就遇到了
网友回复:
引用:chable发表于2022-5-312:34
我就是多个任务,每个任务多线程,同时发布,没什么问题。检查过了。