mysql数据库名和表名的大小写敏感性问题
在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。一个特例是 Mac OS X,当缺省的 HFS+ 文件系统使用时。然而 Mac OS X 还支持 UFS 卷,那些在 Mac OS X 是大小写敏感的就如他们在任一 Unix 上一样。查看章节 1.8.3 MySQL 对 ANSI SQL92 的扩展。
注意:尽管在 Windows 中数据库与表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表。下面的查询将不能工作,因为它以 my_table 和 MY_TABLE 引用一个表:
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
列名与列的别名在所有的情况下均是忽略大小写的。
表的别名是区分大小写的。下面的查询将不能工作,因为它用 a 和 A 引用别名:
mysql> SELECT col_name FROM tbl_name AS a WHERE a.col_name = 1 OR A.col_name = 2;
如果记忆数据库和表名的字母大小写有困难,建议采用一个一致一约定,例如总是以小写字母创建数据库和表。
避免这个问题的另一个办法就是以 -O lower_case_table_names=1 参数启动 mysqld。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。
如果 lower_case_table_names 为 1 ,MySQL 将在存储与查找时将所有的表名转换为小写字线。(从 MySQL 4.0.2 开始,这个选项同样适用于数据库名。) 注意,当你更改这个选项时,你必须在启动mysqld 前首先将老的表名转换为小写字母。
分享到:
相关推荐
因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。 MySQL大小写敏感可以通过配置文件的lower_...
这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。一个特例是 Mac OS X,当缺省的 HFS+ 文件系统使用时。然而 Mac OS X 还支持 UFS 卷,那些在 Mac OS X 是大小...
linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中: 1)lower_case_table_names = 0 区分大小写(即对大小写不敏感),默认是这种设置。这样设置后,...
今天小编就为大家分享一篇关于MySQL数据库大小写敏感的问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
MYSQL数据库取表名易语言源码。@易语言数据库教程。
Mysql查询操作 MySql下实现查询表名不区分大小写
MySql表名大小写的问题.txt
mysql的最长数据库名,表名,字段名可以是多长.pdf
MySQL8.0之后,数据库和表名称的大小写问题与之前的MySQL设置不同,需要引起重视,不然后续修改很麻烦。
主要介绍了Sql查询获取MySql数据库中的表名和描述表中列名数据类型,长度,精度,是否可以为null,默认值,是否自增,是否是主键,列描述等列信息
MySQL 数据库备份 和 恢复
问题引发: 假设现在有 表A 和 表B(A和B分别为表名),具体设计如下: 其中,表B的 aid 是外键,关联...上网找,说是因为 MYSQL 数据库大小写敏感的问题: 查看数据库大小写敏感设置的语句: show variables like '
国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表
今天郁闷死了,在LINUX下调一个程序老说找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢?
在C#中读取出所有数据库名,和相应的表名 在C#中读取出所有数据库名,和相应的表名