无法识别重复密钥上的mysql

无法识别重复密钥上的mysql,mysql,phpmyadmin,wampserver,on-duplicate-key,Mysql,Phpmyadmin,Wampserver,On Duplicate Key,该声明随机停止工作。我相信这是因为我使用的是新版本的WAMP 4.5.2 INSERT INTO at_user_listing_settings (userID, rfID, userID_rfID, Watching) VALUES(177, 35888, '177_35888', '1') ON DUPLICATE KEY UPDATE Watching='1' 我得到这个错误: Unrecognized keyword. (near "ON" at position 138) Unre

该声明随机停止工作。我相信这是因为我使用的是新版本的WAMP 4.5.2

INSERT INTO at_user_listing_settings (userID, rfID, userID_rfID, Watching) VALUES(177, 35888, '177_35888', '1') ON DUPLICATE KEY UPDATE Watching='1'
我得到这个错误:

Unrecognized keyword. (near "ON" at position 138)
Unrecognized keyword. (near "DUPLICATE" at position 141)
Unrecognized keyword. (near "KEY" at position 151)

我似乎找不到任何语法错误,重复键上的
是否已更改或弃用?

只需将您的查询改写为:

INSERT INTO at_user_listing_settings
SET
  userID = 177,
  rfID = 35888,
  userID_rfID = '177_35888',
  Watching = '1'
ON DUPLICATE KEY UPDATE
  Watching = '1'

只需将查询改写为:

INSERT INTO at_user_listing_settings
SET
  userID = 177,
  rfID = 35888,
  userID_rfID = '177_35888',
  Watching = '1'
ON DUPLICATE KEY UPDATE
  Watching = '1'

这似乎是一个
phpMyAdmin
问题

它看起来很旧,但我看不到任何关于修复的参考,它仍然是开放的

我们为一个类似的工具提供了一个插件,称为phpMyAdmin,因为人们对phpMyAdmin有一些奇怪的问题


下载后,它将直接安装到WAMPServer中,并出现在WAMPServer主页的“您的别名”菜单中

这似乎是一个
phpMyAdmin
问题

它看起来很旧,但我看不到任何关于修复的参考,它仍然是开放的

我们为一个类似的工具提供了一个插件,称为phpMyAdmin,因为人们对phpMyAdmin有一些奇怪的问题


下载后,它将直接安装到WAMPServer中,并出现在WAMPServer主页上的“您的别名”菜单中。

最终解决了这个问题

下载新版本的WAMP时,默认情况下会将mysql设置为“严格”模式。hostgator托管的真实服务器必须有更宽松的限制。当尝试在本地运行代码时,代码是正确的,但是当尝试更新或插入数据库(也是本地的)时,sql语句遇到了问题

例如,严格模式要求具有布尔值的列具有默认值。如果任何列没有默认值,则在尝试插入时将失败。最糟糕的是,它不会返回apache或php错误,因此调试起来非常困难。它也不喜欢“在重复键上”

为了解决这个问题,我进入WAMP>MySQL>my.ini>并查找
sql mode=“STRICT\u ALL\u TABLES”


然后我删除了
STRICT\u ALL\u表
,一切都开始正常工作

终于弄明白了这件事

下载新版本的WAMP时,默认情况下会将mysql设置为“严格”模式。hostgator托管的真实服务器必须有更宽松的限制。当尝试在本地运行代码时,代码是正确的,但是当尝试更新或插入数据库(也是本地的)时,sql语句遇到了问题

例如,严格模式要求具有布尔值的列具有默认值。如果任何列没有默认值,则在尝试插入时将失败。最糟糕的是,它不会返回apache或php错误,因此调试起来非常困难。它也不喜欢“在重复键上”

为了解决这个问题,我进入WAMP>MySQL>my.ini>并查找
sql mode=“STRICT\u ALL\u TABLES”


然后我删除了
STRICT\u ALL\u表
,一切都开始正常工作

您正在使用什么的
4.5.2
?您在这个精确的查询中得到这个错误吗?显示为:SELECT version()的输出;你确定你在使用MYSQL吗?这是一些PHP代码的一部分吗?如果是的话,请显示你正在使用的PHP代码
4.5.2
是什么?你在这个精确的查询中得到这个错误吗?显示为:SELECT version()的输出;你确定你使用的是MYSQL吗?这是一些PHP代码的一部分吗?如果是的话,请显示PHP代码。我尝试了上面的语句,但仍然得到类似的错误,这也是关于另一个专栏的说明Notes“也许这就是问题的根源?错误:无法识别的关键字。(位置151的“开”附近)无法识别的关键字。(位置154处“重复”附近)无法识别的关键字。(位置164的“键”附近)先前发现了一个别名。(靠近位置189的“'1'”)1364-字段“Notes”没有默认值,我想知道最后一个错误部分是否与此有关……我尝试了上面的语句,但仍然得到类似的错误,它也说明了另一个列。”Notes“也许这就是问题的根源?错误:无法识别的关键字。(位置151的“开”附近)无法识别的关键字。(位置154处“重复”附近)无法识别的关键字。(位置164的“键”附近)先前发现了一个别名。(位置189的“'1'”附近)1364-字段“Notes”没有默认值我想知道最后一个错误部分是否与此有关…我给你+1,至少知道这是phpmyadmin问题,而不是代码问题。虽然从技术上讲这是一个mysql设置,但我给你+1,至少你知道这是一个phpmyadmin问题,而不是代码问题。虽然从技术上讲,这是一个mysql设置。