无法在mysql中创建表-错误1064
我正试图用这个查询在MySQL中创建一个表无法在mysql中创建表-错误1064,mysql,ddl,create-table,Mysql,Ddl,Create Table,我正试图用这个查询在MySQL中创建一个表 CREATE TABLE ofRosterGroups ( rosterID BIGINT NOT NULL, rank TINYINT NOT NULL, groupName VARCHAR(255) NOT NULL, PRIMARY KEY (rosterID, rank), INDEX ofRoster
CREATE TABLE ofRosterGroups (
rosterID BIGINT NOT NULL,
rank TINYINT NOT NULL,
groupName VARCHAR(255) NOT NULL,
PRIMARY KEY (rosterID, rank),
INDEX ofRosterGroup_rosterid_idx (rosterID)
);
但似乎每次我更新时都会抛出错误。我不知道它出了什么问题
出现的错误是
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法
近'rank TINYINT不为空,组名第3行的VARCHAR
MySQL 8.0.2增加了对window
rank
函数的支持,使其成为一个
您可以使用backticks(`)对其进行转义:
但最好使用非保留字的名称,例如rosterRank
,而不是rank
:
CREATE TABLE ofRosterGroups (
rosterID BIGINT NOT NULL,
rosterRank TINYINT NOT NULL, -- Here
groupName VARCHAR(255) NOT NULL,
PRIMARY KEY (rosterID, rosterRank), -- And here
INDEX ofRosterGroup_rosterid_idx (rosterID)
);
。请在mysql服务器中尝试,同样的错误也会出现come@TimBiegeleisen这个错误会在MySQL 8中重现,不会在MySQL 5.x中重现-详细信息请参见我的答案。@Mureinik是的,我经常看到这个错误。错过了MySQL 8第1部分。
CREATE TABLE ofRosterGroups (
rosterID BIGINT NOT NULL,
rosterRank TINYINT NOT NULL, -- Here
groupName VARCHAR(255) NOT NULL,
PRIMARY KEY (rosterID, rosterRank), -- And here
INDEX ofRosterGroup_rosterid_idx (rosterID)
);