sql >> Databasteknik >  >> RDS >> Mysql

Codeigniters insert_batch() med tusentals inlägg saknar poster

insert_batch() försöker undvika exakt ditt problem - att försöka infoga data som är större än vad MySQL är konfigurerat att bearbeta åt gången. Jag är inte säker på om MySQL:s alternativ för det var max_allowed_packet eller något annat, men problemet med det är att det sätter en gräns i byte och inte ett antal rader.

Om du ska redigera DB_active_rec.php, mysql_driver.php eller vad som är lämpligt ... försök att ändra det 100-talet i for() slinga. 50 borde vara ett säkrare val.

Annat än det, FYI - affected_rows() returnerar inte rätt värde om du infogar fler än 100 rader via insert_batch() , så det är inte tillförlitligt att använda det som en framgångs-/felkontroll. Det beror på att insert_batch() infogar dina data med 100 poster åt gången, medan affected_rows() skulle bara returnera data för den senaste frågan.



  1. Hur beräknar jag en löpande summa i SQL utan att använda en markör?

  2. PostgreSQL-motsvarighet för MySQL GROUP BY

  3. MySQL-fråga som beräknar delsummor

  4. Wordpress mysql-grupp av | sortera efter