phpmyadmin在重复密钥更新时为insert…抛出错误

qni6mghb  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(340)

在phpmyadmin sql窗口中尝试以下mysql时,抛出错误

INSERT INTO `stationlist`(`ID`, `Comd`, `Stn`, `Pin`, `Location`) 
        VALUES (Null, 'aaa','bb',11,'ddd') 
        ON DUPLICATE KEY UPDATE (Comd = 'abcd', Stn ='AFSB', Pin = 999, Location ='Delhi')

错误消息是 "Unregcognised keyword" 为了 ON DUPLICATE KEY 以及所有后续代币。
这样的声明 ON DUPLICATE KEY mysql中不允许?

i86rm4rw

i86rm4rw1#

我使用了另一种方法,使用sqlinsert插入新记录,使用sqlupdate更新现有记录。

vsikbqxv

vsikbqxv2#

删除括号:

INSERT INTO `stationlist`(`ID`, `Comd_ID`, `Stn`, `Pin`, `Location`) 
VALUES (Null, 'aa','bb',11,'ddd') 
ON DUPLICATE KEY UPDATE `Comd_ID` = 'xxx', `Stn` ='AFSB', `Pin` = 999, `Location` ='Delhi'

此外,建议省略 auto-increment 列而不是传递 NULL 去吧。

INSERT INTO `stationlist`(`Comd_ID`, `Stn`, `Pin`, `Location`) 
VALUES ('aa','bb',11,'ddd') 
ON DUPLICATE KEY UPDATE `Comd_ID` = 'xxx', `Stn` ='AFSB', `Pin` = 999, `Location` ='Delhi'

笔记:
我不知道你为什么要 Comd_ID = '' . 如果您需要一些帮助来适当地设置值,请编辑您的问题并解释您希望它是什么。
你想避免重复什么价值观?这个 ON DUPLICATE KEY UPDATE 子句用于具有唯一索引的列。一般来说,你应该避免使用 ON DUPLICATE KEY UPDATE 具有多个唯一索引的表上的子句。

ukqbszuj

ukqbszuj3#

遵循的步骤

删除括号:如果要运行此查询,则它正在工作。但将显示语法错误。例如:

INSERT INTO stationlist (Comd,Stn,Pin,Location)
    VALUES ('aaa','bb',11,'ddd') ON DUPLICATE KEY

UPDATE Comd = 'abcd'
    ,Stn = 'AFSB'
    ,Pin = 999
    ,Location = 'Delhi'

我的疑问如下:

INSERT INTO dragdrop (id,TEXT,listorder)
    VALUES (7,'HTML',6) ON DUPLICATE KEY

UPDATE TEXT = 'JSON' ,listorder = 7

对于语法突出显示的参考,将在此phpmyadmin问题上跟踪错误。

相关问题