SQL查询不起作用?

时间:2015-04-23 01:35:57

标签: mysql sql

我想在数据库中创建一个表,下面是我写的查询;有没有人知道为什么它不起作用?

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第4行的“sname varchar(255),city varchar(255),avg int(20),clg#int(20)”附近使用正确的语法

CREATE TABLE stud
(
s# int,
sname varchar(255),
city varchar(255),
avg int(20),
clg# int(20)
);

4 个答案:

答案 0 :(得分:3)

#不是标识符的有效字符。只需删除它:

CREATE TABLE stud (
    s int,
    sname varchar(255),
    city varchar(255),
    avg int(20),
    clg int(20)
); 

您可以查看标识符here的规则。请注意,您也可以将该名称放在反引号中:

    `s#` int,

但是,我强烈建议您不要使用需要转义的名称。

答案 1 :(得分:1)

你的表名中没有#,将你的脚本更改为此脚本并重试。

CREATE TABLE stud ( s int, 
sname varchar(255), 
city varchar(255), 
avg int(20),
clg int(20) ); 

答案 2 :(得分:0)

您不能在列名中使用“#”字符。

答案 3 :(得分:0)

不建议使用'#'命名您的标识符。这对您和您团队中的其他开发人员来说是不明确的。请改用

CREATE TABLE stud (
sNo int,
sname varchar(255),
city varchar(255),
avg int(20),
clgNo int(20)
);

通过描述性地命名您的标识符,每个人都更容易理解。但是,mysql qouted 标识符命名规则允许ASCII:U + 0001 .. U + 007F 见here
MySQL Schema对象命名为Rules