mysql限制大小写_mysql对大小写的限制问题

今天研发人员问我,mysql对大小写有限制吗?我想都没想,说没限制。过了一会儿,研发人员告诉我说Linux下是有限制的。我顿时有种打自己脸的感觉。对于自己不确定的问题,一定得想清楚,查明白了再说。

在Windows和Mac OS中,lower_case_tables_name的默认值是1.

如果只是在一个平台上使用mysql,通常是不需要更改lower_case_tables_name变量。但是如果在对大小写敏感不同的操作系统上导入数据库,就会遇到问题。在Linux上,test_table和TEST_TABLE是两个不同的表。在Windows中,这两个表明相同。

在数据转移时避免由于数据库名和表名的大小写造成的数据转移问题,可使用两个选项:

(1)在任何系统中可以使用lower_case_tables_name=1。使用该选项的不利之处是当使用SHOW TABLES或SHOW DATABASES时,看不出名字原来是用大写还是小写

(2)在Linux中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2。这样了可以保留数据库名和表名的大小写。不利之处是必须确保在Windows中查询总是用正确大小写引用数据库名和表名。如果将查询转移到Linux中,由于在Linux中大小写很重要,如果大小写不正确,它们不工作。

例外:如果你正使用InnoDB表,在任何平台上均应将lower_case_tables_name设置为1,以强制将名转换为小写。请注意在Linux中将lower_case_tables_name设置为1之前,重启mysqld之前,必须先将旧的数据库名和表名转换为小写。

原文:http://jackyxin.blog.51cto.com/1976631/1661131

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值