首页 » 性感的程序员 » [mysql]表名字段名大小写问题(windows)

[mysql]表名字段名大小写问题(windows)

在某宝强烈建议下,mysql表名和字段名全部使用小驼峰命名法。

问题1:表名支持大写,但是,在导入sql文件的时候,会把所有表名修改为小写
解决方法:修改为下划线命名法

问题2:字段名支持大小写,但是会发生这种情况:如果我有一个postId字段,那么想建立一个postid字段,就会报字段名重复的错误.
换句话说,在程序里SELECT * FROM postIdSELECT * FROM postid得到的结果是一样的.

只是因为windows里面文件名不区分大小写,mysql在把字段名显示出来之前,后台处理了一下,写成postId的形式,其实它的本质还是全部小写.windows下导出的sql文件里面的表名为大写而linux下的mysql表名和字段名默认都是区分大小写的,所以,当把代码传到linux服务器上的时候,注意SELECT * FROM postIdSELECT * FROM postid现在并不相同.
注:(下面内容摘自网上)

MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下:
数据库名与表名是严格区分大小写的
表的别名是严格区分大小写的
列名与列的别名在所有的情况下均是忽略大小写的
变量名也是严格区分大小写的

通过google相关资料,windows关于设置sql默认区分大小写与否:在my.ini文件[mysqld]节下 添加 lower_case_table_names='value'
value = 0 :区分大小写,并在文件中以指定大小写保存.
value = 1 :不区分大小写,在文件中以小写保存.
value = 2 :在文件中以区分大小写形式保存,但mysql将其转化为小写便于查找.注:只在不区分大小写的文件系统上适用.