MySQL數據庫表大小寫不敏感處理,看完之后,大部分程序員收藏了
MySQL大小寫敏感的控制
mysql是通過lower_case_table_names參數來控制大小寫敏感的
1:參數含義
lower_case_table_names: 此參數不可以動態修改,必須重啟數據庫
lower_case_table_names = 1 表名存儲在磁盤是小寫的,但是比較的時候是不區分大小寫
lower_case_table_names=0 表名存儲為給定的大小和比較是區分大小寫的
lower_case_table_names=2, 表名存儲為給定的大小寫但是比較的時候是小寫的
2 大小寫區分規則
linux下:
數據庫名與表名是嚴格區分大小寫的;
表的別名是嚴格區分大小寫的;
列名與列的別名在所有的情況下均是忽略大小寫的;
變量名也是嚴格區分大小寫的;
windows下:
都不區分大小寫
Mac OS下(非UFS卷):
都不區分大小寫
案列:
數據庫中存在edu_website_images表
select * from edu_website_images
通過大寫查詢報錯不存在
select * from EDU_WEBSITE_IMAGES
如何處理?
配置mysql配置文件
vi /etc/my.cnf 加入一行lower_case_table_names = 1
- //重啟mysqlservice mysql restart
然后
- show variables like '%lower%';
有可能結果是上面的沒改過來...
我們把數據庫導出,重新創建一下數據庫結果就正確了