2015-06-12 56 views
0

我试图通过终端在我的数据库中创建一个表。尝试通过终端在MySQL中创建表的错误

这里是我的语法:

CREATE TABLE `users` (
    PRIMARY KEY(id) NOT NULL AUTO_INCREMENT, 
    `last_name` VARCHAR NOT NULL, 
    `first_name` VARCHAR NOT NULL, 
    `gender` VARCHAR NOT NULL, 
    `fav_color` VARCHAR NOT NULL, 
    `birthdate` DATE NOT NULL 
); 

我收到此错误:

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 'NOT NULL AUTO_INCREMENT, 
`last_name` VARCHAR NOT NULL, 
`first_name` VARCHA' at line 2 

我是什么洞错在这里?

回答

3

除了问题,即延和马克指出,你必须声明你的VARCHAR字段的长度,以便该声明的工作,像这样:

CREATE TABLE `test`.`users` (
    `id` INT NOT NULL AUTO_INCREMENT, 
    `last_name` VARCHAR(45) NOT NULL, 
    `first_name` VARCHAR(45) NOT NULL, 
    `gender` VARCHAR(45) NOT NULL, 
    `fav_color` VARCHAR(45) NOT NULL, 
    `birthdate` DATE NOT NULL, 
    PRIMARY KEY (`id`)); 
2

您创建语句的语法是错误的:

正确的一个是这样的:

CREATE TABLE `users` (
    `id` int NOT NULL AUTO_INCREMENT, 
    `last_name` VARCHAR(255) NOT NULL, 
    `first_name` VARCHAR(255) NOT NULL, 
    `gender` VARCHAR(255) NOT NULL, 
    `fav_color` VARCHAR(255) NOT NULL, 
    `birthdate` DATE NOT NULL, 
    PRIMARY KEY(`id`) 
); 

欲了解更多信息,请参阅offical documentation

1

应该

id int primary key auto_increment not null 

你试图定义上不存在的场主键。键不能是“不为空”,绝对不能是“auto_increment”。

+0

这仍然给了我同样的错误,但引用像3而不是第2行 – Dear1ofGdBear

+0

不要忘记把逗号放在最后...... –

+0

是的,我把逗号放在那里 – Dear1ofGdBear

相关问题