mysql - DateTime 和 TimeStamp 中的 MYSQL 错误 1064
问题描述
美好的一天,我正在我的数据库上创建一些表,当我尝试保存时,它会抛出这个错误
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '0) NOT NULL ,
date_registered
DATETIME NOT NULL ,last_login
TIMESTAMP 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;
解决方案
试试这个,你只需要在 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 `
只需在枚举中添加引号