2016-07-12 81 views
1

我想在插入重複項時使用下面的代碼段來更新數據庫。但不是更新它,而是插入重複的行。爲什麼?關於重複鍵更新的Mysql不能正常工作

$import = "INSERT INTO data(Product,Courier,Received_Date,Acc_No,Received_By,Delivered_Date,Month,Year,Bill_Run,Dispatch_Type,Status,Bounce_Code) values('$data[0]','$data[1]','$Received_Date','$data[3]','$data[4]','$Delivered_Date','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]') ON DUPLICATE KEY UPDATE Acc_No = '$data[3]' 
+0

這就是我所認爲的,我寫了一個[簡單的瞭解IODKU(http://stackoverflow.com/a/32468519)例如。 – Drew

回答

2

對於「對重複密鑰更新」工作,你需要對錶的唯一或主鍵約束。只有在插入'ON DUPLICATE KEY UPDATE'代碼時發生密鑰衝突纔會執行。

+0

這就是答案。我會接受它。 – Drew

+0

難以置信的老闆對不起 – Drew

+0

獨特或主要不工作 – delive

0

添加主鍵約束在桌子上:

ALTER TABLE table_name add primary key(col_name)