Php 重复密钥更新的Mysql不工作

Php 重复密钥更新的Mysql不工作,php,mysql,Php,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]','$

我试图在插入重复项时使用以下代码段来更新数据库。但不是更新它,而是插入重复的行。为什么?

$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]'

要使“重复密钥更新”生效,您需要表上的唯一或主键约束。只有在插入“重复密钥更新”代码时会出现密钥冲突时,才会执行该代码。

在表上添加主键约束:

ALTER TABLE table_name add primary key(col_name)
这就是我写的一个例子。