mysql session大小写_mysql的大小写敏感性
mysql的大小寫敏感性主要分為兩部份:一個是表名區別大小寫;二是字段值不區分大小寫.這個跟我們希望的恰好相反,而這卻是mysql 的默認設置,不得不令人費解,而這些卻是oracle數據庫比較基本的東西。
首先說說MYSQL建表的特點?如果你創建一張test表,然后你到data目錄下會發現以下三個文件:
test.frm
test.MYD
test.MYI
即創建一個表,它會自動生成三個文件。這點跟oracle也有很大的不同,如果這樣,那如何使用裸設備呢?看來要用mysql數據庫,是不得不要用文件系統。而通常操作系統都對用戶同時打開的文件數有限制,一般為1024個,使用mysql要注意.
那如何設置讓mysql的表名不區分大小寫呢?修改/etc/my.cnf文件,在[mysqld] 下增加參數lower_case_table_names = 1
這個參數的含義是使所有的表名都轉化成小寫來處理,如果你在原系統中已有大寫的表名,要先把它們重命名為小寫,以免加了此參數后,以前大寫的表無法識別.
另外一個問題,就是默認的字段值不區分大小寫?這點是比較令人頭痛的事。如果你在一有唯一約束的列上插入兩行值'A'和'a',Mysql會認為它是相同的,而在oracle中就不會。請看下面的測試:
mysql> create table test4(nick varchar(20) primary key);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test4 values('A');
Query OK, 1 row affected (0.00 sec)
mysql> insert into test4 values('a');
ERROR 1062: Duplicate entry 'a' for key 1
而如何設置讓其列值區分大小寫呢?
mysql> create table test4(nick varchar(20) binary primary key);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test4 values('A');
Query OK, 1 row affected (0.00 sec)
mysql> insert into test4 values('a');
Query OK, 1 row affected (0.00 sec)
在聲明字符類型后,在后面加一個binary,mysql就可以區分大小寫了。
分享到:
2008-11-16 21:28
瀏覽 615
評論
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的mysql session大小写_mysql的大小写敏感性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue.js 删除指定元素_vue.js
- 下一篇: mysql提高并行并行_oracle 并