【问题标题】:What is wrong with this syntax that works in mysql 5 but doesn't work in mysql 8这种在 mysql 5 中有效但在 mysql 8 中无效的语法有什么问题
【发布时间】:2020-04-24 14:52:02
【问题描述】:

第 3 行 '!=guildRank LIMIT 1 END' 附近的 SQL 语法中出现 1064 错误

CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteUserGuildAttr`(IN userId INT unsigned, IN guildId 
INT unsigned, IN guildRank SMALLINT unsigned)
BEGIN
     DELETE FROM guildattr WHERE id=userId AND guild_id=guildId AND rank!=guildRank LIMIT 1;
END

【问题讨论】:

标签: mysql sql syntax


【解决方案1】:

MySQL 8.0 增加了rank() 窗口函数,所以现在是reserved

你需要转义它:

`rank` <> guildRank

条件。

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 2015-01-17
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多