首页 > 解决方案 > 将密钥组合为唯一集的重复密钥失效

问题描述

在我的表中,我创建了唯一键(文章、客户、价格)的组合。

现在我需要将 csv 插入到这个表中,如果行是重复的,我需要更新。

        " INSERT INTO 
                `article` (`article`, `customer`, `price`, `a`, `b`) VALUES ()-- VALUES
                ON DUPLICATE KEY UPDATE article= VALUES(article), customer= VALUES(customer), price = VALUES(price), a = VALUES(a), b= VALUES(b) "



foreach ($values as $value) {

....

每次我跑步时,我都会得到PHP Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that cor responds to your MariaDB server version for the right syntax to use near 'ON DUP LICATE KEY UPDATE

谁能帮我解决这个问题?

标签: phpmysql

解决方案


您在此查询中缺少列和 ON DUPLICATE KEY UPDATE 之间的插入子句。

 " INSERT INTO 
                `article` (`article`, `customer`, `price`, `a`, `b`) 
/* insert clause goes here */
                ON DUPLICATE KEY UPDATE article= VALUES(article), customer= VALUES(customer), price = VALUES(price), a = VALUES(a), b= VALUES(b) 

推荐阅读