2

The weirdest thing is happening here. I have a script that creates a bunch of sql tables. Here's a quick example:

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;

When I run this from the command line like:

mysql>\. create_mydb.sql

I get errors like this for every comment:

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

Any ideas?

4

1 回答 1

3

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

9.6。注释语法

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

1.8.5.5。'--' 作为评论的开始

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

于 2013-10-22T15:35:13.693 回答