INSERT Batch,如果在codeigniter中重复键更新

时间:2013-12-24 06:24:16

标签: mysql database codeigniter bulkinsert batch-updates

有没有办法在批量插入查询中执行,如果密钥已经存在,请在codeigniter中更新该行? 我已经阅读了文档,发现只有insert_batch和update_batch。但是如何在活动记录中使用重复键更新行?如果在batch_insert中无法插入或更新一行,会发生什么?所有插入失败或只有那行?

2 个答案:

答案 0 :(得分:7)

您必须通过添加“ON DUPLICATE”语句

来进行少量自定义查询
$sql = $this->db->insert_string('YourTable', $data) . ' ON DUPLICATE KEY UPDATE duplicate=duplicate+1';
$this->db->query($sql);
$id = $this->db->insert_id();

另请check this out,它会为您提供更好的解决方案

答案 1 :(得分:0)

对于Codeigniter 3,您可以使用此库。这使您能够提供一组将插入到单独的行中的键/值对,并在数据库中出现重复键时自动更新数据。 https://github.com/amir-ranglerz/CodeIgniter-Insert-Batch-on-DUPLICATE-KEY-Update