【发布时间】:2021-12-25 09:08:39
【问题描述】:
我正在使用可以运行代码的在线代码编辑器来学习 SQL,例如techonthenet.com 或 w3schools。问题是,ON DUPLICATE KEY UPDATE 命令似乎在这些编辑器中不起作用。这是一个示例 https://www.techonthenet.com/sql/select_try_sql.php 的链接。我正在尝试更新客户数据库。如果我只使用 INSERT 命令,它似乎工作正常,但是当我尝试 ON DUPLICATE KEY UPDATE 时,我收到此错误:
SyntaxError: Parse error on line 2:
..., 'new first name')ON DUPLICATE KEY UPD
----------------------^
Expecting 'EOF', 'COMMA', 'RPAR', 'END', 'WHEN', 'ELSE', 'OUTPUT', 'GO', 'SEMICOLON', got 'ON'
我的代码如下所示:
INSERT INTO customers (customer_id, last_name, first_name)
VALUES ('4000', 'new last name', 'new first name')
ON DUPLICATE KEY UPDATE last_name = 'new last name', first_name = 'new first name';
是我做错了什么还是那些网站没有完全正常运行?
【问题讨论】:
-
这是
INSERT语句的 MySQL/MariaDB 特定扩展 - 不是 ANSI/ISO SQL 标准功能。它通常不受到任何其他 RDBMS 引擎的支持,因此根据这些在线网站所建模的引擎,这显然不起作用.... -
哦,谢谢你的解释。有没有办法在标准 SQL 中实现类似的结果(即插入新值或替换旧值)而无需任何扩展?
标签: sql on-duplicate-key