创建表不起作用

时间:2017-12-21 05:45:49

标签: sql mariadb create-table

我在Maria DB Server.

中创建表时遇到问题

我可以在我的其他设备上成功制作表格,但是对于MYSQL(可能有不同的代码)。

查询:

CREATE TABLE admin (
    'id' double(9999) NOT NULL auto_increment, 
    'username' VARCHAR(50) NOT NULL,
    'passcode' VARCHAR(50) NOT NULL,
    'email' VARCHAR(50) NOT NULL,
    'state' VARCHAR(50) NOT NULL,
    'points' double(9999) not null,
    PRIMARY KEY(id) 
);

查询错误:

  

您的SQL语法有错误;检查与MariaDB服务器版本对应的手册,以便在“id”double附近使用正确的语法(9999)NOT NULL auto_increment'username'VARCHAR(50)NOT NULL,'pa'在第2行

如果需要任何其他信息,请在评论中提问。

由于

2 个答案:

答案 0 :(得分:3)

你在表名周围放了单引号,MariaDB将其解释为字符串文字。相反,只需直接使用不带引号的名称:

CREATE TABLE admin (
    id double(9999) NOT NULL auto_increment,
    username VARCHAR(50) NOT NULL,
    passcode VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    state VARCHAR(50) NOT NULL,
    points double(9999) not null,
    PRIMARY KEY(id)
);

如果你确实需要在MariaDB / MySQL中转义一个列名,例如因为名称有空格或是关键字,你可以使用反引号来实现:

CREATE TABLE admin (
    `id` double(9999) NOT NULL auto_increment,
    `username` VARCHAR(50) NOT NULL,
    ...
)

但请注意,将空格放入列名或表名或使用保留关键字被认为是不好的做法。

答案 1 :(得分:1)

您还可以将主键放在AUTO_INCREMENT之后

CREATE TABLE admin (
    'id' double(9999) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    'username' VARCHAR(50) NOT NULL,
    'passcode' VARCHAR(50) NOT NULL,
    'email' VARCHAR(50) NOT NULL,
    'state' VARCHAR(50) NOT NULL,
    'points' double(9999) not null

);