【发布时间】: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