MySql两个表同名不同大小写

MySql两个表同名不同大小写,mysql,Mysql,我开始发疯了,因为我好像有一张幻影桌。。。但是,如果我运行以下两个查询,它不会显示在Navicat中: 从消息中选择count(*) 从消息中选择count(*) 我得到两组不同的结果 然而,奇怪的是,如果我运行showtables我只看到一个名为messages 这让我很害怕,因为我不知道数据是否会被错误地扔进不正确的表消息 以前有人见过这个吗 我不知道该怎么办 每个请求 运行后,显示表格状态,如“消息” messages InnoDB 10 Compact 224163 222 498892

我开始发疯了,因为我好像有一张幻影桌。。。但是,如果我运行以下两个查询,它不会显示在Navicat中:

从消息中选择count(*)

从消息中选择count(*)

我得到两组不同的结果

然而,奇怪的是,如果我运行
showtables
我只看到一个名为
messages

这让我很害怕,因为我不知道数据是否会被错误地扔进不正确的表
消息

以前有人见过这个吗

我不知道该怎么办

每个请求

运行
后,显示表格状态,如“消息”

messages InnoDB 10 Compact 224163 222 49889280 0 53608448 8388608 208683 2014-08-23 20:16:11拉丁语和瑞典语

再更新一次

我两次都跑过:

SELECT*FROM information_schema.tables,其中table_name='Messages'

SELECT*FROM information_schema.tables,其中table_name='messages'

它显示多条记录,记录计数不同

可怕的是,我对数据库中的其他表运行了相同的查询,而我使用相同技术测试的所有其他表都有相同的问题


好像每个表都有两个副本,一个是大写字母,另一个是小写字母,看起来小写字母是两个表中“最新的”。

我建议您使用查询
信息\u schema.tables
来检查表

SELECT * FROM information_schema.tables WHERE table_name = 'Messages';

也考虑某人创建视图的可能性。

SELECT * FROM information_schema.views  WHERE table_name = 'Messages';

有一个MySQL变量
小写\u tables\u names
,它有一个效果;此变量的默认值取决于操作系统(Linux、Windows、OSX)。(在我们的MySQL系统上,我们将其显式设置为1。)根据参考手册:

“如果您使用的是InnoDB表,则应在所有平台上将此变量设置为1,以强制将名称转换为小写。”

(如果将此变量设置为1以外的值,则手册的这一部分不会描述您在InnoDB表中观察到的行为。)


参考:

Windows还是Linux/OSx?MySQL区分大小写或不基于底层文件系统,对于Linux、OSx、BSD等,这将区分大小写,在windows上,这将是大小写密集型的,可能会导致对表名称的混淆。唯一的问题是,我无法在任何地方找到
消息
表,而不是通过show tables,在查看实际数据目录时不是这样,但我仍然可以查询不同的结果。好的,如果在windows上运行,它们可能是同一个表,
消息
消息
消息
都应该引用同一个表,因为结果不同,如果添加ORDERBY子句,它们的结果是否相同?有可能MySQL只是按照它喜欢的方式对结果进行排序,并且碰巧对表名的两种情况选择了不同的默认排序方法。不,这更奇怪,我运行了一个计数(*)-完全不同的结果。请尝试
显示数据库
;幸运的是,该表位于另一个数据库中。然后存在
将表消息重命名为Mess
这里的视图可能就是答案。我选中了-没有视图-我将检查小写的\u TABLE\u names变量我想你正在接近。。。我运行了上面的查询,一个查询消息,一个查询消息-都返回结果。。。现在的问题是,我到底是如何得到两个名为相同的表的结果的。。真奇怪!如果我将变量改为1,小写的表仍然是“主”表吗?其他表会发生什么情况?他们被删除了吗?@99823:这真是个好问题。如果您现在更改
小写字母表名称
变量,我不确定会有什么后果。。。我希望任何具有混合大小写名称的表都无法访问。(我们有
innodb_file_per_table
变量集,我们所有的innodb表都是独立的.idb文件。如果您的innodb都在一个共享的innodb表空间中,我不知道……您可能想在dba.stackexchange.com上问这个问题。如果是我,我会考虑得到一些mysqldump,表名小写的表s、 具有混合大小写名称的表。。。