【问题标题】:How do I append more elements to an ENUM-type in MySQL Workbench?如何在 MySQL Workbench 中将更多元素附加到 ENUM 类型?
【发布时间】:2016-03-17 01:44:36
【问题描述】:

正如标题所示,我正在尝试向现有的 ENUM 类型列添加更多元素。我正在为我的数据库使用 MySQL Workbench 6.3。

CREATE TABLE `quantum` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `type` enum('a','b','c','d','e') CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=11173 DEFAULT CHARSET=utf8;

然后我尝试更改类型列以添加另一个元素f

ALTER TABLE quantum
MODIFY COLUMN type enum('a','b','c','d','e','f') NOT NULL

然后 MySQL Workbench 6.3 给了我一些奇怪的错误

【问题讨论】:

  • type 是一个保留字,所以作为一个列名(坏主意,顺便说一句),它可能需要用反引号指定为 `type` 来转义它。
  • 您想使用 GUI 工具(如问题标题)还是纯 SQL 代码(如问题正文)?
  • @Michael-sqlbot - Not really。这是一个关键字,但不是保留的。上面的代码在 MySQL/5.5.46 中对我来说很好。事实上,现在我想知道 OP 是否真的尝试运行代码并遇到服务器错误,或者他只是在询问客户端解析器。
  • @ÁlvaroGonzález 感谢您指出这一点。不好的猜测。 :( 我真的无法理解 Oracle 对客户端解析器的想法——可能出现什么问题?我想知道我看到的非 MySQL 错误消息是怎么回事在这里。如果这就是他们正在做的事情,那是一个悲惨的设计决定。旧的 MySQL 查询浏览器仍然一如既往地是我作为 DBA 的首选工具——轻便、快速、不臃肿。向我展示对象和让我运行查询和脚本。如果服务器不喜欢它们,让服务器告诉我。否则,不碍事,没有这样的问题。
  • @Michael-sqlbot 嗯...我确实喜欢语法高亮和 linting 以及我能获得的任何其他帮助。而且 Workbench 逻辑应该相当不错,因为它基本上重用了服务器代码中的大部分组件。

标签: mysql enums mysql-workbench


【解决方案1】:

您确定您拥有最新版本的 MySQL Workbench。我在当前的(6.3.6)中没有看到这个问题:

【讨论】:

    【解决方案2】:

    在工作台/mysql 中使用 enum() 数据类型时。 Mysql 不接受 ENUM() 中没有值/参数的 ENUM()。

    将 ENUM 与一些逗号分隔值一起使用:

    ENUM('PENDING','SUCCESS','FAIL')
    

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 2022-11-18
      • 2019-10-16
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      • 1970-01-01
      • 2021-04-18
      相关资源
      最近更新 更多