TP5 Mysql中批量插入数据,有则更新,无则插入

博客讨论了在TP5框架中使用Mysql进行批量数据操作时,如何实现有则更新、无则插入的功能。指出`insertAll`方法的`replace`参数实际上会删除已有数据再插入,而非预期的更新行为。解决方案是利用`ON DUPLICATE KEY UPDATE`语句来指定在键冲突时要更新的字段。
摘要由CSDN通过智能技术生成

insertAll里面有个replace参数,操作之后发现,即使这个参数设置成true,最后的执行结果是直接把已经存在的数据删除后再插入的,相当于先delete再insert.这样导致一些不需要更新的字段也不存在了.

在网上找到一个 ON DUPLICATE KEY UPDATE 的用法 实验后是自己想要的效果.更新就是update

这里重复就更新是指的更新主键或者唯一索引重复的地方 

直接上代码
$res = Db::execute('INSERT INTO `student`(`student_name`, `student_no`,  `status`, `school_id`, `create_time`) VALUES'.$data.' ON DUPLICATE KEY UPDATE `student_name`= VALUES(student_name),`status`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值