我正在运行 mysql 5.6。

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

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

有没有办法删除显式列 collate 子句?

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

  • 在我请求时获取没有 collate 子句的列定义
    来自 mysql 的 create table 语句(我希望能够比较
    使用 create table 从代码库创建表的脚本
    从架构的不同实例获得的语句
    不同的mysql服务器;显式列 collate 子句是
    仅在某些情况下,而不是在其他情况下,这需要我
    使用比纯文本差异更复杂的差异)
  • 使这些列的 collate 自动更改为
    如果我更改它,无论新的默认数据库 collate 是什么

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

    谢谢。

    最佳答案

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

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

    关于mysql 5.6 : remove explicit column collate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24852680/

    10-10 22:29