gpt4 book ai didi

MySql 两个表同名不同大小写

转载 作者:行者123 更新时间:2023-11-29 12:41:56 26 4
gpt4 key购买 nike

我开始抓狂,因为我似乎有一个幻像表...它没有显示在 Navicat 中,但是如果我运行这两个查询:

从消息中选择计数(*);

从消息中选择计数(*);

我得到两组不同的结果!

但是,奇怪的是,如果我运行 showtables,我只能看到一个名为 messages 的表

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

有人见过这个吗?

我不知道该怎么办。

每个请求

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

消息 InnoDB 10 Compact 224163 222 49889280 0 53608448 8388608 208683 2014-08-23 20:16:11 latin1_swedish_ci

还有更新

我都运行过:

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

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

它显示具有不同记录计数的多条记录

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

就好像每个表格我都有两份,一份的首字母大写,另一份的首字母小写,而且小写的似乎是两者中“最新鲜”的。

最佳答案

我建议您使用 information_schema.tables 查询来检查该表。

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

还要考虑有人创建 View 的可能性。

SELECT * FROM information_schema.views  WHERE table_name = 'Messages';
<小时/>

有一个 MySQL 变量 lower_case_tables_names 有效;该变量的默认值取决于操作系统(Linux、Windows、OS X)。 (我们在 MySQL 系统上将其明确设置为 1。)根据引用手册:

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

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

引用号:http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_lower_case_table_names

关于MySql 两个表同名不同大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com