mysql - 如果系统不区分大小写,两个表名相同

标签 mysql windows import wamp case-insensitive

所以,我开发一个项目已经有一段时间了。到目前为止,我一直在 Windows 7 下使用 VirtualBox 和虚拟 Linux 服务器工作。现在,我希望在 Windows 8 计算机下工作,而无需为虚拟 Linux 计算机分配内存。

该项目使用 MySQL 数据库,我将其导出,然后尝试将其导入到我的 Windows 环境中。显然,一些旧表是分别使用 Messagemessage 名称创建的。这在我的虚拟 Linux 服务器和实时 Linux 服务器上都没有造成任何问题,因为表名称区分大小写,因此拥有两个类似的表是完全有效的。表的名称,即 Messagemessage。但是,在 Windows 8 下,使用 wamp,我无法导入数据库。

我一直在尝试在 my.ini 中设置一个值,如下所示:

lower_case_table_names=2

但是,当我再次尝试导入数据库时​​,我的尝试没有成功,因为 Message 的表名似乎与 message 的表名冲突> 再一次。我期望该设置允许我创建两个表,一个名称为 Message,另一个名称为 message。但是,该设置根本没有帮助(是的,我已经重新启动了 mysql 服务和 wamp ,但运气不好,我根本无法导入数据库)。我还检查了 lower_case_table_names=2 的设置是否已应用,是的,它已应用。但是,我仍然无法在数据库中创建 Messagemessage 表。在我完全绝望的交响乐中,我尝试过设置

lower_case_table_names=0

也一样,但也没有运气。

所以,要么是我的问题,要么这个设置不起作用(但是,它被标记为许多类似问题的解决方案)。 MySQL 服务器版本是 5.5.24

所以,问题是:我可以在wamp使用的MySQL服务器中解析导入具有表名(例如message和Message)的数据库吗?如果可以,如何解析?

如果没有有效的解决方案(至少在我看来),我将不得不考虑两种可能的解决方案:

  1. 在我的新笔记本电脑上安装VirtualBox(叹气),并以与旧笔记本电脑相同的方式在这台计算机上工作。

  2. 修改数据库中一个表的名称并修改其在项目中的所有引用,部署它,然后导出和导入数据库,而无需同时使用 Messagemessage 表。

我知道在同一个数据库中创建消息和消息表并不明智,但我以这种方式继承了该项目。如果没有简单的解决方案,我有两种替代解决方案,但如果有修改设置的简单解决方案,我真的很感兴趣。

提前谢谢大家。

最佳答案

我已通过以下方式解决了该问题:

  1. 创建一个名为 Messages 的表

  2. 将 Message 中找到的所有记录插入 Messages

  3. 删除消息

  4. 修改对消息的所有引用,以便它们现在在消息上引用

如果有人遇到这个问题,不要等待答案,我已经等了14个小时了,所以你也会浪费时间。相反,硬着头皮使用我的想法,或者使用虚拟 Linux 机来解决您的问题。

关于mysql - 如果系统不区分大小写,两个表名相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972784/

相关文章:

r - 在 R 中将指数值作为数字导入

mysql - 无法使用私有(private)IP从GCE登录google cloud sql(mysql)

mysql - 如何通过计数限制 SQL LEFT JOIN 查询的结果集

javascript - 打开文件时停止了 JS 执行?

c++ - 共享库中静态对象的销毁顺序

delphi - 如何以类似于 NET FileHelpers 的方式读写 CSV?

mysql - 如何从Oracle存储过程中选择/插入MySQL表?

php - sql 结果显示在 phpmyadmin 上,但不将记录返回到我的网站

windows - 使用/R 标志将批处理脚本的输出放入正确的子目录中

python - 为什么在函数中使用模块后重新导入会抛出异常?