php中sql执行成功,mysql sql中部分执行成功会怎样?

1:update from tb_test set mid = 1 where id in(1,2,3,……)

2:insert into tb_test(id,mid) values (1,2), (2,3), (3,4), (……)

听说:写操作时会自动加排它锁,并且上面这种情况,锁行是一行一行的锁,然后最后同时释放锁,即锁一行,操作一行,直至没有条件,最后同时释放所有锁 by http://hedengcheng.com/?p=771

不开启事务,InnoDB表

问题1:假如更新/操作时部分执行失败了(由于主键或者唯一索引等原因导致更新失败),但是按照上面理解的,对写操作的分析,虽然最终sql执行失败,那是不是会有部分更新/新增操作成功了呢?

问题2:对于sql部分执行成功,会出现“部分生效”好像是有个mysql或者pdo的配置啊,上次在这里看到一个类似的问题,好像有说到,找半天找不到真是急死人了。

回复内容:

1:update from tb_test set mid = 1 where id in(1,2,3,……)

2:insert into tb_test(id,mid) values (1,2), (2,3), (3,4), (……)

听说:写操作时会自动加排它锁,并且上面这种情况,锁行是一行一行的锁,然后最后同时释放锁,即锁一行,操作一行,直至没有条件,最后同时释放所有锁 by http://hedengcheng.com/?p=771

不开启事务,InnoDB表

问题1:假如更新/操作时部分执行失败了(由于主键或者唯一索引等原因导致更新失败),但是按照上面理解的,对写操作的分析,虽然最终sql执行失败,那是不是会有部分更新/新增操作成功了呢?

问题2:对于sql部分执行成功,会出现“部分生效”好像是有个mysql或者pdo的配置啊,上次在这里看到一个类似的问题,好像有说到,找半天找不到真是急死人了。

谢邀,我找来一些之前的回答整理一下以供你的参考。

mysql INNODB update语句加锁顺序

高并发下,对一个表的操作insert update delete,update会失败是什么情况?

针对于题主的问题,可以明确告诉你不会出现部分成功的情况

单行语句也是一个事务,不会有成功一半的这种情况出现

没人知道这个问题吗?

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值