一、linux中mysql大小写详情:
2、表名严格区分大小写的
3、表的别名严格区分大小写
4、变量名严格区分大小写
5、列名在所有的情况下均忽略大小写
6、列的别名在所有的情况下均忽略大小写
二、设置mysql表名不区分大小写
1、切换到root用户
$
su
-
root
2、修改/etc/my.cof配置文件,
#
sed
-i
'/\[mysqld\]/a\lower_case_table_names=1'
/etc/my.cnf
lower_case_table_names参数详解:
0:区分大小写
1:不区分大小写
3、重启mysql
#
service
mysqld
restart
mysql数据库名和表名的大小写敏感说明:mysql中的数据库名和表名和 *** 作系统有关,在windows *** 作系统中,不区分大小写,在unix
,linux *** 作系统中,是区分大小写的。其实可以到mysql存放数据的data目录下进行查看,可以知道其实一个数据库是对应表,一张表是对应一个
表名+.frm的文件
。
由于在windows *** 作系统中,文件名和目录名是不区分大小写的,
所以mysql数据库名和表名在windows下是大小写不敏感的,而unix,linux则不然。
下面是mysqlmanual原文说明:
in
mysql,
databases
and
tables
correspond
to
directories
and
files
within
those
directories.
consequently,
the
case
sensitivity
of
the
underlying
operating
system
determines
the
case
sensitivity
of
database
and
table
names.
this
means
database
and
table
names
are
case
sensitive
in
unix
and
case
insensitive
in
windows.
列名的大小写说明:
mysql默认的设置或是对整个库的设置是否区分大小写和校对规则有关,默认设的规则是大小写不敏感的。
show create table如果看到collate是ci结尾,那么就是不区别的,如果cs或bin结尾,就是区别的。
如果建表的时候选择的是区别大小写的规则而查询的时候又暂时不想区别,
可以用类似
WHERE column_name COLLATE latin1_general_ci = 'xxx'
的写法改变查询使用的校对规则
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)