我是mysql的新手,所以我使用phpmyadmin在数据库中创建表。我有领域制造商的枚举类型,可能值"manufacturer1","manufacturer2",.
我选择了ENUM类型,点击"Edit ENUM/SET值“,然后弹出一个窗口询问所需的值。我松开指令,按"go“和‘制造商1’,‘制造商2’,‘制造商3’,'Manufacturer4‘没有写的长度/值。
当我试图创建表时,我会得到1064个语法错误。当我单击“预览SQL”时,我得到以下内容:
CREATE TABLE `test4_db`.`product` ( `product_id` INT(11) NOT NULL AUTO_INCREMENT , `image_url` VARCHAR(255) NOT NULL , `manufacturer` ENUM(0) NOT NULL DEFAULT 'Manufacturer1' , `health` ENUM(0) NOT NULL , `missing` INT(11) NOT NULL , `statuss` ENUM(0) NOT NULL DEFAULT 'available' , `owner_id` INT(11) NOT NULL , `holder_id` INT(11) NOT NULL , PRIMARY KEY (`puzzle_id`)) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_bin;
为什么phpmyadmin要写ENUM(0)而不是ENUM(“制造商1”、“制造商2”、“制造商3”、“Manufacturer4”)?
发布于 2016-10-05 18:37:41
这是一个带有phpMyAdmin 4.6.4的bug。
看这个- https://github.com/phpmyadmin/phpmyadmin/issues/12480
这将在4.6.5中得到修正。
同时,您可以简单地执行“预览SQL",复制生成的SQL,并将ENUM(0)替换为所需的值。
或者,使用phpMyAdmin的早期版本。
发布于 2016-10-05 13:04:02
使用此方法,但请记住编辑health
和statuss
列的枚举。我刚才加了一个例子。
CREATE TABLE `test4_db`.`puzzles` (
`puzzle_id` INT(11) NOT NULL AUTO_INCREMENT ,
`image_url` VARCHAR(255) NOT NULL ,
`manufacturer` ENUM('Manufacturer1', 'Manufacturer2', 'Manufacturer3') NOT NULL DEFAULT 'Manufacturer1' ,
`health` ENUM('y', 'n') NOT NULL ,
`missing` INT(11) NOT NULL ,
`statuss` ENUM('y', 'n') NOT NULL DEFAULT 'available' ,
`owner_id` INT(11) NOT NULL ,
`holder_id` INT(11) NOT NULL ,
PRIMARY KEY (`puzzle_id`))
ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_bin;
最好使用查询,而不是@Abhrapratim Nag中提到的UI。
https://stackoverflow.com/questions/39874215
复制相似问题