Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux中运行允许小写表名的MySQL查询和包含小写表名的my查询?_Mysql_Linux - Fatal编程技术网

如何在Linux中运行允许小写表名的MySQL查询和包含小写表名的my查询?

如何在Linux中运行允许小写表名的MySQL查询和包含小写表名的my查询?,mysql,linux,Mysql,Linux,在Linux服务器中,我正在配置Apache和PhpMyadmin 在数据库中,我的表的名称是mst\u vehicle 当我从mst\U vehicle启动一个查询,如select*from mst\U vehicle时,它将给出正确的结果,但是 当我从Mst\U Vehicle发出类似“选择*”这样的查询时,它将给出一个错误 请帮我解决这个问题 我将数据库从windows导入到linux phpmyadmin,我的windows数据库已经使用小写的表名。数据库和表名在windows中不区分大

在Linux服务器中,我正在配置Apache和PhpMyadmin

在数据库中,我的表的名称是
mst\u vehicle

当我从mst\U vehicle启动一个查询,如
select*from mst\U vehicle
时,它将给出正确的结果,但是

当我从Mst\U Vehicle发出类似“选择*”这样的查询时,它将给出一个错误

请帮我解决这个问题


我将数据库从windows导入到linux phpmyadmin,我的windows数据库已经使用小写的表名。

数据库和表名在windows中不区分大小写,在大多数Unix中都区分大小写。

在MySQL中,数据库对应于数据中的目录 目录数据库中的每个表至少对应一个 数据库目录中的文件(可能更多,具体取决于 存储引擎)。因此,案件的敏感性 底层操作系统在区分大小写方面起着重要作用 数据库和表名。这意味着数据库和表名不可用 在Windows中区分大小写,在大多数类型中区分大小写 Unix。一个显著的例外是MacOSX,它基于Unix,但使用 不区分大小写的默认文件系统类型(HFS+)


查看一下

通过执行以下操作,您可以从不区分大小写的名称中获得正确的区分大小写的表名:

select table_name from information_schema.tables where lower(table_name)="mst_vehicle" and table_schema="YourDatabaseName"

不过,这将增加性能损失。

感谢您的重播。但我的操作系统是LinuxRedHat,我在linux中配置了apache服务器和mysql(phpmyadmin)。什么样的更改允许我触发这种类型的查询?您需要在实际情况下传递表名;在我的项目所有文件中键入Query当此类型的查询从该文件触发时,它将不起作用。我能做什么?更改所有文件非常耗时,我没有那么多时间..有什么办法解决这个问题吗?是的,您可以根据您的案例重命名表:
将表temp\u table重命名为temp\u table
这似乎正确。如果您的表名为
mst\u vehicle
,则您的查询应该是
select*from mst\u vehicle
,而不是
mst\u vehicle
。我建议更改代码或表名,使它们匹配;依赖于不区分大小写并不是我认为的好方法。是的,我在所有查询中都重命名了我所有的表名和列名。