重复键在 phpmyadmin 中无法识别

ON DUPLICATE KEY unrecognized in phpmyadmin

我有一个 mysql 数据库托管在远程服务器上,我正在使用 InnoDB。其他一切工作正常,但每当我尝试执行以下查询时在 phpmyadmin 上

INSERT INTO User (user_id, location) VALUES (1, 'London') ON DUPLICATE KEY UPDATE location=VALUES('London')

突出显示 ONDUPLICATEKEY,因为它们是 unrecognized keywords 请帮忙!

请删除 ON DUPLICATE KEY 部分中的 VALUES(...)

INSERT INTO User (user_id, location) VALUES (1, 'London') ON DUPLICATE KEY UPDATE location = 'London'

如果要更新多列,应使用正常的 UPDATE 语法:

INSERT INTO User (firstColumn, secondColumn) VALUES (1, 'London') ON DUPLICATE KEY UPDATE firstColumn = 'ABC', secondColumn = 'DEF';

在使用 ON DUPLICATE KEY 之前,您应该为一列或多列添加索引。您可以使用以下命令添加新索引。

ALTER TABLE `table_name` ADD UNIQUE `unique_index`(`column1`);

对于多列索引,请使用以下命令。

ALTER TABLE `table_name` ADD UNIQUE `unique_index`(`column1`, `column2`);

现在您可以 INSERT/UPDATE 将一行或多行放在一起。

要插入单行,请使用以下命令。

INSERT INTO `table_name` (`column1`,`column2`,`column3`,`column4`) VALUES('value1','value2','value3','value4') ON DUPLICATE KEY UPDATE `column3`='value3', `column4`='value4';

INSERT INTO `table_name` (`column1`,`column2`,`column3`,`column4`) VALUES('value1','value2','value3','value4') ON DUPLICATE KEY UPDATE `column3`=VALUES(`column3`), `column4`=VALUES(`column4`);

使用此命令您还可以 INSERT/UPDATE 多行。为此,请使用以下命令。

INSERT INTO `table_name` (`column1`,`column2`,`column3`,`column4`) VALUES('value11','value12','value13','value14'),('value21','value22','value23','value24') ON DUPLICATE KEY UPDATE `column3`=VALUES(`column3`), `column4`=VALUES(`column4`);