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

San*_*rma 6 mysql database bulkinsert codeigniter batch-updates

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

Moy*_*ari 8

您必须通过添加"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();
Run Code Online (Sandbox Code Playgroud)

另外请检查一下,它会给你更好的解决方案