尝试使用以下方法在MySQL中创建表:
CREATE TABLE users (
id INT(5) NOT NULL ZEROFILL AUTO_INCREMENT PRIMARY KEY ,
passport VARCHAR(250) NOT NULL ,
nickname VARCHAR(250) NOT NULL ,
mail VARCHAR(250) NOT NULL ,
password VARCHAR(250) NOT NULL ,
age INT(2) NOT NULL ,
sex VARCHAR(250) NOT NULL ,
is_registered VARCHAR(1) NOT NULL DEFAULT 1 ,
is_registered_timestamp TIMESTAMP NOT NULL ZEROFILL ,
is_admin VARCHAR(1) NOT NULL DEFAULT 0 ,
is_admin_timestamp TIMESTAMP NOT NULL ZEROFILL ,
is_banned VARCHAR(1) NOT NULL DEFAULT 0 ,
is_banned_timestamp TIMESTAMP NOT NULL ZEROFILL
);
获取错误消息:
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 'ZEROFILL AUTO_INCREMENT PRIMARY KEY ,
`passport` VARCHAR(250) NOT NULL ,
`nick' at line 2
这是什么意思?我是MySQL的新手,并尽可能地阅读以尝试理解不同的数据类型,并假设我使用了正确的数据类型,因此无法理解此错误消息试图说出的内容。
答案 0 :(得分:3)
ZEROFILL是数据类型
的属性更改ZEROFILL和NOT NULL的顺序,如下面的查询
CREATE TABLE `users` (
`id` INT(5) ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY ,
...
供参考阅读this
答案 1 :(得分:0)
第一个建议,看起来你正在从MySQL工作台生成DDL,我也尝试过,但它也给了我这样的错误。尝试在适当的建模工具tike Toad或类似的东西中进行该表(数据库)的模型,我尝试了它并且每次都有效。
对于该语法,看起来,编译器没有识别一些关键词,如ZEROFILL,AUTO INCREMENT。自动增量也可以是整个数据库(方案)的属性,因此您可以在全局中打开它,没有理由为每个表设置它。如果我没记错,MySQL中的bigges问题以及使用生成的DDL是[`]符号,请尝试删除它们。