Estoy tratando de insertar algunas filas en la tabla MySQL usando Codeigniter y Active Records.INSERTAR IGNORAR usando Codeigniter
Código PHP
$data = array('......'); // some rows of data to insert
$this->db->insert_batch('my_table', $data);
Sin embargo, esto puede causar filas duplicadas que se insertan en la tabla. Para manejar la inserción de datos duplicados, planeo usar el comando INSERT IGNORE
para no insertar la fila si la fila es un duplicado.
Problema: No puedo encontrar el equivalente INSERT IGNORE
en Active Records y no quiero editar la clase Active Record. ¿Hay otras alternativas?
Lo siguiente parece interesante, pero si hago lo siguiente, ¿no se ejecutará la consulta dos veces?
$insert_query = $this->db->insert_batch('my_table', $data); // QUERY RUNS ONCE
$insert_query = str_replace('INSERT INTO','INSERT IGNORE INTO',$insert_query);
$this->db->query($insert_query); // QUERY RUNS A SECOND TIME
Después de leer todas las respuestas, vamos a resumir - NO hay buen método para hacer esto como un lote ': (' – Dan
Probé el INSERT IGNORE con MySQL 5.5.42 y funciona. Sin embargo, hay un efecto secundario en el que el auto-incremento continuará aumentando incluso si no se insertó nada. –