mysql 5.6:删除显式列整理

Posted

技术标签:

【中文标题】mysql 5.6:删除显式列整理【英文标题】:mysql 5.6: remove explicit column collate 【发布时间】:2014-09-11 05:24:36 【问题描述】:

我正在运行 mysql 5.6。

我从以前的开发人员那里继承的架构中的某些列具有明确指定的collate 子句。

所有明确指定的collate 子句都与数据库的默认collate 相同。

有什么方法可以去掉显式列collate 子句?

与我当前的 collate 相比,应该没有功能整理差异,但我想要以下内容:

    在我请求时获取没有collate 子句的列定义 来自mysql的create table语句(我希望能够比较 来自带有create table 的代码存储库的表创建脚本 从模式的不同实例获得的语句 不同的mysql服务器;显式列collate 子句是 仅在某些情况下,而不是在其他情况下,这需要我 使用比纯文本差异更复杂的差异)

    让这些列的collate 自动更改为 新的默认数据库 collate 是什么,如果我改变它的话

但是,1) 比 2) 重要得多,因为我可能永远不会再更改 collate

谢谢。

【问题讨论】:

【参考方案1】:

不使用SHOW CREATE TABLE,而是从information_schemaTABLESCOLUMNS 获取等效数据。

同时,您是否有一个 COLLATION 子句在某些情况下存在但在其他情况下不存在的示例?

【讨论】:

我不再为使用这些表格的公司工作,所以我没有示例。我们有模式创建脚本,所以重点是将当前的 VCS 版本与正在运行的数据库进行比较。从information_schema 表中选择信息需要我们自己从数据中重构create table 语句,这需要额外的努力,并且可能容易出错。另外,这只涉及问题 1,而不是问题 2。

以上是关于mysql 5.6:删除显式列整理的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 6下编译安装MySQL 5.6

Centos6.5下编译安装mysql 5.6

CentOS 6.5系统安装编译安装MySQL 5.6详细过程

MySQL别名列通配符[重复]

mysql错误代码整理

linux mysql 5.6 能升级5.7 吗