首页 > 解决方案 > DateTime 和 TimeStamp 中的 MYSQL 错误 1064

问题描述

美好的一天,我正在我的数据库上创建一些表,当我尝试保存时,它会抛出这个错误

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '0) NOT NULL , date_registeredDATETIME NOT NULL , last_loginTIMESTAMP NOT'附近使用正确的语法

之前在 Stackoverflow上已经调试过这种错误解决方案是从 TIMESTAMP 列中删除长度。其他解决方案要求建议应从列标识符中删除引号或应使用刻度。不幸的是,我的 DATETIME 和 TIMESTAMP 列没有长度,而且我的列标识符周围有刻度。

这是我的 SQL 语句的样子。有人可以帮忙吗?

CREATE TABLE `inventoryman_db`.`users` 
( `id` INT NOT NULL AUTO_INCREMENT , 
`full_name` VARCHAR(255) NOT NULL , 
`email` VARCHAR(255) NOT NULL , 
`password` VARCHAR(300) NOT NULL , 
`usertype` ENUM(0) NOT NULL , 
`date_registered` DATETIME NOT NULL , 
`last_login` TIMESTAMP NOT NULL , 
`notes` VARCHAR(255) NOT NULL COMMENT 'For verification and other purposes, we will store a random key here' , 
PRIMARY KEY (`id`)) 
ENGINE = InnoDB;

标签: mysqlsqldatabase

解决方案


试试这个,你只需要在 enum('0') 中添加引号,因为 enum 被认为是带有索引他的数组的字符串。

CREATE TABLE `percept`.`users1` ( `id` INT NOT NULL AUTO_INCREMENT , 
`full_name` VARCHAR(255) NOT NULL , `email` VARCHAR(255) NOT NULL ,
`password` VARCHAR(300) NOT NULL ,
`usertype` ENUM('0') NOT NULL ,
`date_registered` DATETIME NOT NULL , 
`last_login` TIMESTAMP NOT NULL , 
`notes` VARCHAR(255) NOT NULL COMMENT 'For verification and other purposes, we will store a random key here' , 
PRIMARY KEY (`id`)) ENGINE = InnoDB `

只需在枚举中添加引号


推荐阅读