Insert with on duplicate key update 给出错误 1064
Insert with on duplicate key update gives error 1064
我正在尝试使用此查询,但无论我做什么我都无法让它工作。我对 on duplicate key update 语法还是很陌生,但我找不到任何问题
INSERT INTO product_leverancier (product_id, leverancier_id, prijs)
SELECT i.product_id, i.leverancier_id, i.prijs FROM import_tbl i
ON DUPLICATE KEY UPDATE product_id=VALUES(product_id),
leverancier_id=VALUES(leverancier_id), prijs=VALUES(prijs)
我得到的错误是:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE product_id=VALUES(product_id), leverancier_id=VALUES(leverancier_id), pr' at line 2
Error code 1064.
无论我更改什么,它始终是相同的错误和错误代码。
知道问题出在哪里吗?
您的语法有点不对,我不认为在使用 SELECT
作为插入源时使用了 VALUES
。相反,使用该来源 table 作为更新值:
INSERT INTO product_leverancier (product_id, leverancier_id, prijs)
SELECT i.product_id, i.leverancier_id, i.prijs
FROM import_tbl i
ON DUPLICATE KEY UPDATE
product_id = i.product_id,
leverancier_id = i.leverancier_id,
prijs = i.prijs
请注意,引用源 table 中的列时需要别名 i
。
这是一个很好的参考问题,它深入研究了 ON DUPLICATE KEY UPDATE
与 INSERT INTO ... SELECT
一起使用时的语法:
INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE
你试过吗?
ON DUPLICATE KEY UPDATE
product_leverancier.product_id = i.product_id,
product_leverancier.leverancier_id = i.leverancier_id,
product_leverancier.prijs = i.prijs
我正在尝试使用此查询,但无论我做什么我都无法让它工作。我对 on duplicate key update 语法还是很陌生,但我找不到任何问题
INSERT INTO product_leverancier (product_id, leverancier_id, prijs)
SELECT i.product_id, i.leverancier_id, i.prijs FROM import_tbl i
ON DUPLICATE KEY UPDATE product_id=VALUES(product_id),
leverancier_id=VALUES(leverancier_id), prijs=VALUES(prijs)
我得到的错误是:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE product_id=VALUES(product_id), leverancier_id=VALUES(leverancier_id), pr' at line 2 Error code 1064.
无论我更改什么,它始终是相同的错误和错误代码。 知道问题出在哪里吗?
您的语法有点不对,我不认为在使用 SELECT
作为插入源时使用了 VALUES
。相反,使用该来源 table 作为更新值:
INSERT INTO product_leverancier (product_id, leverancier_id, prijs)
SELECT i.product_id, i.leverancier_id, i.prijs
FROM import_tbl i
ON DUPLICATE KEY UPDATE
product_id = i.product_id,
leverancier_id = i.leverancier_id,
prijs = i.prijs
请注意,引用源 table 中的列时需要别名 i
。
这是一个很好的参考问题,它深入研究了 ON DUPLICATE KEY UPDATE
与 INSERT INTO ... SELECT
一起使用时的语法:
INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE
你试过吗?
ON DUPLICATE KEY UPDATE
product_leverancier.product_id = i.product_id,
product_leverancier.leverancier_id = i.leverancier_id,
product_leverancier.prijs = i.prijs