mysql - MySQL 8 的这种语法有什么问题?,它在 5.7 上运行良好
问题描述
我正在安装运行此查询的旧 vBulletin 版本 3.x,
CREATE TABLE usertextfield (
userid INT UNSIGNED NOT NULL DEFAULT '0',
subfolders MEDIUMTEXT,
pmfolders MEDIUMTEXT,
buddylist MEDIUMTEXT,
ignorelist MEDIUMTEXT,
signature MEDIUMTEXT,
searchprefs MEDIUMTEXT,
rank MEDIUMTEXT,
PRIMARY KEY (userid)
);
这对于较旧的 MySQL 版本总是可以正常工作,但在 MySQL 8 中会出现语法错误 .. #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法
'rank MEDIUMTEXT,
PRIMARY (userid)
)'
在第 9 行,而这个几乎相同的查询执行得很好并创建了表。
CREATE TABLE administrator (
userid INT UNSIGNED NOT NULL DEFAULT '0',
adminpermissions INT UNSIGNED NOT NULL DEFAULT '0',
navprefs MEDIUMTEXT,
cssprefs VARCHAR(250) NOT NULL DEFAULT '',
notes MEDIUMTEXT,
dismissednews TEXT,
languageid SMALLINT UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (userid)
)
您能否让我知道发生了什么变化以及我该怎么办?
解决方案
RANK
在 MySQL 8.0.2 中成为保留关键字。您应该重命名该列,或用 ` 标记将其包围,即
`rank` MEDIUMTEXT,
推荐阅读
- sql - 针对 mongodb 运行数千个 updateMany 语句会出现错误“Bufbuilder 试图将()增长到 x 字节,超过 64MB 限制”
- python-3.x - 如何检索桌面快捷方式指向的 url?
- angular - 在 Angular Universal 中检测网站页面中的网络爬虫
- python - 如何用(x,y)对拆分列表
- react-native - 使用反应导航为底部选项卡创建粘性组件
- jags - 使用 JAGS 的零改变(障碍)泊松或负二项式模型(零通货膨胀)中的自相关误差
- android - 无服务器卡支付处理器集成选项
- c# - 如何在控制器中传递模型的值?
- php - 解析包含产品 ID 和 option_id => variant_id 对的字符串
- java - Selenium 测试 Java maven 依赖项