首页 > 解决方案 > 告诉我 MySQL 8 中的正确语法

问题描述

CREATE TABLE socialgroupcategory (
 socialgroupcategoryid INT unsigned NOT NULL auto_increment,
 creatoruserid INT unsigned NOT NULL,
 title VARCHAR(250) NOT NULL,
 description TEXT NOT NULL,
 displayorder INT unsigned NOT NULL,
 lastupdate INT unsigned NOT NULL,
 groups INT unsigned DEFAULT '0',
 PRIMARY KEY  (socialgroupcategoryid),
 KEY displayorder (displayorder)
);  

MySQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 8 行的“groups INT unsigned DEFAULT '0', PRIMARY KEY (socialgroupcategoryid), KEY dis' 附近使用正确的语法错误号:1064

MySQL 5.7 - 好的

MySQL 8 - 错误

标签: mysql

解决方案


GROUPS已在 MySQL 8 中添加为保留关键字。来自官方文档

组(R);在 8.0.2 中添加(保留)

您应该使用反引号使用保留关键字来命名列/表。使用以下内容(注意 周围的反引号groups):

CREATE TABLE socialgroupcategory (
 socialgroupcategoryid INT unsigned NOT NULL auto_increment,
 creatoruserid INT unsigned NOT NULL,
 title VARCHAR(250) NOT NULL,
 description TEXT NOT NULL,
 displayorder INT unsigned NOT NULL,
 lastupdate INT unsigned NOT NULL,
 `groups` INT unsigned DEFAULT '0',
 PRIMARY KEY  (socialgroupcategoryid),
 KEY displayorder (displayorder)
);  

推荐阅读