-2

我正在使用 mySQL 5.x 进行编码,现在我切换到 8.x 版本,我很困惑。这个短代码有什么问题?

[我的代码截图]

1

错误信息

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'rank VARCHAR(50) NOT NULL、学科 VARCHAR(1)、yr_start INT(11)、' 附近使用的正确语法3号线"

4

2 回答 2

3

rank现在是 MySQL 的保留字。它用于rank()窗口功能

使用变体,例如ranking代替。

这些函数是在 MySQL 8 中引入的。

于 2021-06-19T17:31:57.140 回答
1

如果由于某种原因更改架构不可行,您还可以使用带引号的标识符。默认情况下,MySQL 使用反引号字符,例如:

create table foo (
   `rank` varchar(50)
) 

如果您想在不修改应用程序逻辑的情况下从旧 mysql 版本移植预先存在的模式,则应该可以使用。

于 2021-06-29T03:54:04.713 回答