关于Ubuntu案例敏感性问题的MySQL

时间:2017-12-17 05:24:32

标签: mysql case-sensitive

  1. DB最初是为SQL Server设计的。那时所有的表名都是大小写混合的。例如,UserTasks
  2. 在这些表上编写了数百个存储过程,这些存储过程使用混合大小写表名称。
  3. DB迁移到MySQL(在Windows上),在此过程中,表名自动转换为全部小写,但存储过程中的代码转换为MySQL格式,而不更改表名称。
  4. 我们刚刚迁移到Ubuntu,一切都停止了,因为MySQL无法再找到存储过程中SQL语句中使用的那些表。
  5. 有一个简单的方法吗?我知道艰难的道路。打开这550个存储过程中的每一个,并逐个将表名更改为小写。

1 个答案:

答案 0 :(得分:1)

您应该阅读https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

表名的区分大小写是一个关于MySQL的复杂故事,因为它适用于所有类型的环境:Windows,不区分大小写,Unix和Linux,区分大小写,还有MacOS,类似于混合

您可以使用lower_case_table_names选项。我无法确定,因为我自己不使用该选项,我不使用Windows,而且我很少使用MySQL存储过程,因此我不确定这将如何相互作用使用程序代码。

祝你好运!