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

问题描述 投票:0回答:1
  1. DB最初是为SQL Server设计的。那时所有的表名都是大小写混合的。例如,UserTasks
  2. 在这些表上编写了数百个存储过程,这些存储过程使用混合大小写表名。
  3. 数据库已迁移到MySQL(在Windows上),在此过程中,表名自动转换为所有小写,但存储过程中的代码转换为MySQL格式,而不更改表名称情况。
  4. 我们刚刚迁移到Ubuntu,一切都停止了,因为MySQL无法再找到存储过程中SQL语句中使用的那些表。

有一个简单的方法吗?我知道艰难的道路。打开这550个存储过程中的每一个,并逐个将表名更改为小写。

mysql case-sensitive
1个回答
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存储过程,所以我不确定这将如何与过程代码交互。

祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.