2012-08-15 51 views
0

我在兩個字段的MYSQL數據庫表上有一個索引。我使用auto MDML MYSQL擴展提供的autoPrepare & executeMultiple批處理INSERTS。如果我的索引有重複命中,但會引發錯誤並停止批量插入。我正在尋找INSERT IGNORE等價物,它是一個MYSQL命令,如果嘗試重複,它將忽略該錯誤。有沒有INSERT IGNORE相當於MDB2批量查詢autoPrepare&executeMultiple MDB2_AUTOQUERY_INSERT

批插入讓您指定數組中的表字段,指定字段類型,然後指定要輸入到數組中的所有值。你最終得到類似的東西:

$sth = $db->extended->autoPrepare($table_name, $table_fields,MDB2_AUTOQUERY_INSERT, null, $types); 
$res = $db->extended->executeMultiple($sth, $table_values); 

所以沒有發送特定的查詢。我需要以某種方式發送一個選項,以便它知道不要在重複上拋出錯誤,而只是忽略條目。

回答

0

放棄使用批次插入與MDB2。代替使用具有忽略的正常插入:上FIELD1 & FIELD2一起

INSERT IGNORE into TABLENAME (field1, field2) VALUES (1,2), (a,b) ... 

索引是。 IGNORE如果在索引值上重複嘗試,則跳過條目,但與MDB2批處理命令不同,IGNORE選項允許在查詢重複條目情況時繼續查詢。