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