MySQL脚本正在执行注释行

时间:2013-10-22 15:32:30

标签: mysql

最奇怪的事情发生在这里。我有一个脚本,可以创建一堆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

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

MySQL要求双破折号注释格式后跟一些空格或控制字符,以区分您的注释和潜在有效的语法。

9.6. Comment Syntax

  

从“ - ”序列到行尾。在MySQL中,“ - ”(双破折号)注释样式要求第二个破折号后跟至少一个空格或控制字符(例如空格,制表符,换行符等)。此语法与标准SQL注释语法略有不同,如第1.8.5.5节“' - '作为注释的开头”所述。

1.8.5.5. '--' as the Start of a Comment

  

MySQL Server 3.23.3及更高版本还支持“ - ”注释样式的变体。也就是说,“ - ”开始 - 注释序列后面必须跟一个空格(或者一个控制字符,如换行符)。需要该空间来防止自动生成的SQL查询出现问题