mysql大小写问题
生活随笔
收集整理的這篇文章主要介紹了
mysql大小写问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?MySQL的大小寫問題?不是一個很大的問題,但是如果不了解的話,卻會使用戶產(chǎn)生迷惑?;如下面
?
Sql代碼???
當?shù)诙l執(zhí)行的時候,如果是主鍵或者有唯一性約束的話,會發(fā)生
?
Sql代碼???
更加迷惑的是下面的2條語句
?
Java代碼???
也會發(fā)生插入錯誤。
?
在查詢的時候也會出現(xiàn)這樣的問題
?
Java代碼???
1.問題產(chǎn)生的原因
?
MySQL在Linux下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的:
1、數(shù)據(jù)庫名與表名是嚴格區(qū)分大小寫的;
2、表的別名是嚴格區(qū)分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區(qū)分大小寫的;
?
MySQL在Windows下都不區(qū)分大小寫。 MySQL在查詢字符串時是大小寫不敏感的,在編繹MySQL時一般以ISO-8859字符集作為默認的字符集,這個字符集對大小寫不敏感,因此在比較過程中中文編碼字符大小寫轉(zhuǎn)換造成了這種現(xiàn)象。?
?
2.解決辦法
?
A.表名區(qū)分大小寫
?
在my.conf加入:
ower_case_table_names = 0
其中 0:區(qū)分大小寫,1:不區(qū)分大小寫
?
B.插入查詢時區(qū)分大小寫
?
字段值需要設(shè)置BINARY屬性,即可區(qū)分大小寫。
?
設(shè)置的方法有多種:
創(chuàng)建時設(shè)置:?
CREATE TABLE T(?
A VARCHAR(10) BINARY?
);
?
使用alter修改:?ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY; mysql table editor中直接勾選BINARY項。
轉(zhuǎn)載于:https://blog.51cto.com/pllatt/1020289
總結(jié)
以上是生活随笔為你收集整理的mysql大小写问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11g 64位部分安装过程
- 下一篇: 远哥Amoeba源码分析之:核心类说明