首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误1064 (42000):在SQL语法中有一个错误

错误1064 (42000):在SQL语法中有一个错误
EN

Stack Overflow用户
提问于 2014-01-13 13:39:03
回答 2查看 5.8K关注 0票数 2

尝试使用以下方法在MySQL中创建表:

代码语言:javascript
运行
复制
 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
    ); 

获取错误消息:

代码语言:javascript
运行
复制
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新手,我尽可能多地阅读以尝试和理解不同的数据类型,并假设我使用了正确的数据类型,因此无法理解这条错误消息试图说什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 13:55:25

ZEROFILL是数据类型的属性

更改ZEROFILL和NULL的顺序,就像下面的查询一样

代码语言:javascript
运行
复制
CREATE TABLE `users` (  
`id` INT(5) ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
...

“参考”改为“

票数 3
EN

Stack Overflow用户

发布于 2014-01-13 13:50:27

第一个建议,这个看起来像是从MySQL工作台生成DDL,我也尝试过,但是它也给了我类似的错误。试着用适当的建模工具tike蟾蜍或诸如此类的东西来做那个表(数据库)的模型,我试过了,而且每次都能工作。

在这个语法看来,编译器没有识别一些关键字,比如ZEROFILL,自动增量。自动增量也可以是整个数据库(方案)的属性,因此您可以在全局中打开它,而不需要为每个表设置它。如果我没记错的话,MySQL中最大的问题是使用生成的DDL符号,尝试删除它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21092691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档