lower_case_table_names参数

(1)lower_case_table_names参数的取值

lower_case_table_names默认值为 0,Windows下默认值是 1 .Mac OS X下默认值是 2 。

0:使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母在硬盘上保存表名和数据库名。名称比较对大小写敏感。
在大小写不敏感的操作系统如windows或Mac OS上我们不能将该参数设为0,如果在大小写不敏感的文件系统上将lowercase-table-names强制设为0,并且使用不同的大小写访问MyISAM表名,可能会导致索引破坏。

1:表名在硬盘上以小写保存,名称比较对大小写不敏感。

2:表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母进行保存,但查找的时候MySQL将它们转换为小写。名称比较对大小写不敏感,即按照大小写来保存,按照小写来比较。注释:只在对大小写不敏感的文件系统上适用!。

(2)由大小写敏感转换为不敏感方法

如果原来所建立库及表都是对大小写敏感的,想要转换为对大小写不敏感,主要需要进行如下3步: 
    1.将数据库数据通过mysqldump导出。 
    2.在my.cnf中更改lower_case_tables_name = 1,并重启mysql数据库。 
    3.将导出的数据导入mysql数据库。 

请注意在Unix中如果以前lower_case_tables_name = 0将lower_case_tables_name设置为1之前,重启mysqld之前,必须先将旧的数据库名和表名转换为小写。否则原来是大写的表名,在查询的时候会提示表不存在。

如下案例中的表ORACLE_TEST是在lower_case_table_names=0时创建的,将参数lower_case_table_names修改为1后,重启数据库再次查看ORACLE_TEST表,提示该表不存在。

(root:> show tables;
+----------------------+
| Tables_in_kafka_test |
+----------------------+
| AI                   |
| ORACLE_TEST          |
| ai                   |
| t                    |
| t1                   |
| t2                   |
| test                 |
| test1                |
| test2                |
| test_ddl             |
| test_view            |
| test_view2           |
| tx_template_info     |
| vc                   |
+----------------------+
14 rows in set (0.00 sec)


(root:> select * from ai;
Empty set (0.02 sec)

(root:]> select * from AI;
Empty set (0.00 sec)

(root:> select * from oracle_test;
ERROR 1146 (42S02): Table 'oracle_test' doesn't exist
(root:> select * from ORACLE_TEST;
ERROR 1146 (42S02): Table 'oracle_test' doesn't exist

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#慧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值