【问题标题】:Why phpmyadmin does not create values for enum type?为什么 phpmyadmin 不为枚举类型创建值?
【发布时间】:2016-10-05 12:38:59
【问题描述】:

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

我选择了 ENUM 类型并单击“编辑 ENUM/SET 值”,然后会弹出一个窗口询问所需的值。我按照说明进行操作,按“开始”,'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 写的是 ENUM(0) 而不是 ENUM('Manufacturer1','Manufacturer2','Manufacturer3','Manufacturer4')?

【问题讨论】:

  • 尽量不要使用phpmyadmin ui来编辑数据。而是使用sql查询框。使用“UPDATE”查询来编辑/更新表中的字段,这将提供所需的结果。
  • 您也可以使用tinyint(1) i.p.o. enum如果你想按照自己的方式去做
  • 在不同的浏览器中尝试您的 phpMyAdmin。有什么区别吗?

标签: phpmyadmin


【解决方案1】:

这是 phpMyAdmin 4.6.4 的一个错误。

看到这个 - https://github.com/phpmyadmin/phpmyadmin/issues/12480

这将在 4.6.5 中修复。

同时,您可以简单地“预览 SQL”,复制生成的 SQL,并将 ENUM(0) 替换为您想要的值。

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

【讨论】:

    【解决方案2】:

    使用它,但记得编辑 healthstatuss 列的枚举。例如,我刚刚添加了。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多