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_schema
表TABLES
和COLUMNS
获取等效数据。
同时,您是否有一个 COLLATION
子句在某些情况下存在但在其他情况下不存在的示例?
【讨论】:
我不再为使用这些表格的公司工作,所以我没有示例。我们有模式创建脚本,所以重点是将当前的 VCS 版本与正在运行的数据库进行比较。从information_schema
表中选择信息需要我们自己从数据中重构create table
语句,这需要额外的努力,并且可能容易出错。另外,这只涉及问题 1,而不是问题 2。以上是关于mysql 5.6:删除显式列整理的主要内容,如果未能解决你的问题,请参考以下文章