如何解决HSQLDB ON DUPLICATE KEY UPDATE语法错误
我尝试执行以下查询:
SET DATABASE SQL SYNTAX MYS TRUE;
然后:
INSERT INTO mytable (id,age) VALUES (1,1)
ON DUPLICATE KEY UPDATE id=2,age=33;
我收到错误消息:
INSERT INTO mytable (id,1)
ON DUPLICATE KEY
[2020-10-23 11:09:42] [42590][-5590] unexpected end of statement: required: UPDATE : line: 2
我怎么了?
解决方法
OP在评论中对此进行报告:
PUBLIC.PUBLIC> SET DATABASE SQL SYNTAX MYS TRUE [2020-10-23 11:23:14] completed in 4 ms
PUBLIC.PUBLIC> INSERT INTO tblUserMetadata (userMetadataId,portalId) VALUES (1,1) ON DUPLICATE KEY [2020-10-23 11:23:14] [42590][-5590] unexpected end of statement: required: UPDATE : line: 2
这些行显示正在使用SQL客户端运行脚本。 SQL客户端会预先准备该语句,并认为该语句在关键字KEY
之后结束,而关键字UPDATE
是新语句的开始。因此,它尝试将不完整的SQL查询发送到数据库引擎。
MySQL语法正在运行,因为该命令已被接受并执行。
您可以通过从系统表中进行选择来检查属性设置:
SELECT * FROM information_schema.system_properties
设置了MySQL兼容模式后,以下语句返回true
:
SELECT property_value FROM information_schema.system_properties
WHERE property_name = 'sql.syntax_mys'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。