我不明白为什么会失败:o
CREATE TABLE "Permission" (
"id" INTEGER NOT NULL,
"name" VARCHAR(255) NOT NULL,
PRIMARY KEY ("id")
);
消息
Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"Permission" (
"id" INT NOT NULL,
"name" VARCHAR(255) NOT NULL,
PRIMARY KEY ("id' at line 1
感谢您的任何想法!
答案 0 :(得分:2)
您使用的引号错误。您应该对表名和列使用“标记不是”标记。
CREATE TABLE `Permission` (
`id` INTEGER NOT NULL,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
);
答案 1 :(得分:1)
quickshiftin的答案很好。
你也应该改变:
`id` INTEGER NOT NULL,
为:
`id` INT NOT NULL,
答案 2 :(得分:1)
MySQL通常使用反引号字符来包含对象引用,正如quickshiftin的回答所说。
但是使用双引号并不是真的“错误”,只是MySQL的默认行为是不允许以这种方式使用双引号。
通过为会话启用ANSI_QUOTES
sql模式,MySQL可以在对象引用周围使用双引号字符。我建议你暂时这样做,只是为了定义你的表格,然后再将它设置回来。
SHOW VARIABLES LIKE 'sql_mode'
SET sql_mode = 'ANSI_QUOTES'
在设置sql_mode变量之前,您需要记下当前设置,以便在创建表格后将其设置回来。
SET sql_mode = ''
也可以在数据库级别设置此变量,但我以前从未见过这样做过。我只是(暂时)覆盖了会话级别的默认值,用于导入使用双引号的SQL表定义。