尝试使用以下方法在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新手,我尽可能多地阅读以尝试和理解不同的数据类型,并假设我使用了正确的数据类型,因此无法理解这条错误消息试图说什么。
发布于 2014-01-13 13:55:25
ZEROFILL是数据类型的属性
更改ZEROFILL和NULL的顺序,就像下面的查询一样
CREATE TABLE `users` (
`id` INT(5) ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY ,
...
“参考”改为“这”
发布于 2014-01-13 13:50:27
第一个建议,这个看起来像是从MySQL工作台生成DDL,我也尝试过,但是它也给了我类似的错误。试着用适当的建模工具tike蟾蜍或诸如此类的东西来做那个表(数据库)的模型,我试过了,而且每次都能工作。
在这个语法看来,编译器没有识别一些关键字,比如ZEROFILL,自动增量。自动增量也可以是整个数据库(方案)的属性,因此您可以在全局中打开它,而不需要为每个表设置它。如果我没记错的话,MySQL中最大的问题是使用生成的DDL符号,尝试删除它们。
https://stackoverflow.com/questions/21092691
复制相似问题