为什么phpmyadmin不为枚举类型创建值?

为什么phpmyadmin不为枚举类型创建值?,phpmyadmin,Phpmyadmin,我是mysql新手,所以我使用phpmyadmin在数据库中创建表。我有枚举类型的字段Manufacturer,可能值为“manufacturer1”、“manufacturer2” 我选择了枚举类型并单击“编辑枚举/设置值”,然后弹出一个窗口,询问所需的值。我放弃了说明,按“go”和“Manufacturer1”,“Manufacturer2”,“Manufacturer3”,“Manufacturer4”没有写入长度/值 当我尝试创建表时,我得到1064语法错误。当我单击“预览SQL”时,我

我是mysql新手,所以我使用phpmyadmin在数据库中创建表。我有枚举类型的字段Manufacturer,可能值为“manufacturer1”、“manufacturer2”

我选择了枚举类型并单击“编辑枚举/设置值”,然后弹出一个窗口,询问所需的值。我放弃了说明,按“go”和“Manufacturer1”,“Manufacturer2”,“Manufacturer3”,“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写入枚举(0)而不是枚举('Manufacturer1','Manufacturer2','Manufacturer3','Manufacturer4')?

使用此选项,但请记住编辑
运行状况
状态
列的枚举。我刚才加了一个例子

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;

最好使用query而不是@Abhrapratim Nag所提到的UI,这是phpMyAdmin 4.6.4的一个bug

见此——

这将在第4.6.5节中确定

同时,您只需执行“预览SQL”,复制生成的SQL,并用所需的值替换ENUM(0)


或者,使用以前版本的phpMyAdmin。

尽量不要使用phpMyAdmin ui编辑数据。而是使用sql查询框。使用“更新”查询来编辑/更新表中的字段,这将得到所需的结果。或者,您可以使用
tinyint(1)
i.p.o.
enum
如果您想按自己的方式进行,请在其他浏览器中尝试您的phpMyAdmin。这有什么区别吗?