最奇怪的事情发生在这里。我有一个脚本,可以创建一堆sql表。这是一个简单的例子:
FileName is create_mydb.sql
--Drops/Creates table UserGroup
DROP TABLE IF EXISTS UserGroup;
CREATE TABLE UserGroup (
user_group_id int NOT NULL AUTO_INCREMENT,
user_id int,
group_id int,
PRIMARY KEY (user_group_id)
) ENGINE=INNODB;
-- Drops/Creates table Group
DROP TABLE IF EXISTS Group;
CREATE TABLE Group (
group_id int NOT NULL AUTO_INCREMENT,
group_name varchar(50),
PRIMARY KEY (group_id)
) ENGINE=INNODB;
当我从命令行运行它时,如:
mysql>\. create_mydb.sql
每次评论都会出现这样的错误:
ERROR 1064 (42000): 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 '--Drops/Creates table Group
有什么想法吗?
答案 0 :(得分:3)
MySQL要求双破折号注释格式后跟一些空格或控制字符,以区分您的注释和潜在有效的语法。
从“ - ”序列到行尾。在MySQL中,“ - ”(双破折号)注释样式要求第二个破折号后跟至少一个空格或控制字符(例如空格,制表符,换行符等)。此语法与标准SQL注释语法略有不同,如第1.8.5.5节“' - '作为注释的开头”所述。
1.8.5.5. '--' as the Start of a Comment
MySQL Server 3.23.3及更高版本还支持“ - ”注释样式的变体。也就是说,“ - ”开始 - 注释序列后面必须跟一个空格(或者一个控制字符,如换行符)。需要该空间来防止自动生成的SQL查询出现问题