庫名表名年夜小寫成績與sqlserver兼容的啟動設置裝備擺設辦法。本站提示廣大學習愛好者:(庫名表名年夜小寫成績與sqlserver兼容的啟動設置裝備擺設辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是庫名表名年夜小寫成績與sqlserver兼容的啟動設置裝備擺設辦法正文
將全局變量 lower_case_table_names 設置為1
試驗:
1.lower_case_tables_name=0的情形(Linux默許)
直接啟動mysql,在mytest庫中新建表MyTable和mytable
mysql> use mytest;
mysql> create table MyTable(id int not null,name varchar(10),dt date);
mysql> create table mytable(id int not null,name varchar(10),dt date);
mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| MyTable |
| mytable |
+------------------+
默許情形下,可以同時創立mytable和MyTable兩個表
2.lower_case_tables_name=1的情形(我們須要設置成這類情形)
進入到etc目次,編纂my.cnf文件
[root@MYSQLServer etc]# vi my.cnf
找到 [mysqld]
在它的全局變量的最初面參加一行:lower_case_table_names = 1
保留,加入,然後從新啟動mysql
[root@MYSQLServer etc]# service mysqld restart;
進入到mysql
[root@MYSQLServer mysql]# bin/mysql
mysql> use mytest;
mysql> select * from MyTable;
mysql> select * from mytable;
兩個查詢的成果一樣,都是查詢mytable表,而MyTable表曾經找不到了(可以看到,但查詢不到)
我們再試著創立MyTable表
mysql> create table MyTable(id int not null,name varchar(10),dt date);
ERROR 1050 (42S01): Table 'mytable' already exists
將獲得表曾經存在的提醒
異樣,我們可以試著創立MyTest庫
mysql> create database MyTest;
ERROR 1007 (HY000): Can't create database 'mytest'; database exists
也會獲得庫曾經存在的提醒
在這類情形下,表名和庫名都不辨別年夜小寫了。
留意:在Unix中將lower_case_tables_name設置為1之前,重啟mysqld之前, 必需先將舊的數據庫名和表名轉換為小寫,不然設置後,將找不到之前的表。
(下面的試驗中,MyTable表在lower_case_tables_name=1時曾經找不到了)