库名表名大小写问题与sqlserver兼容的启动配置方
网络编程 2021-07-05 15:27www.168986.cn编程入门
库名表名大小写问题与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.f文件
[root@MYSQLServer etc]# vi my.f
找到 [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时已经找不到了)
实验
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.f文件
[root@MYSQLServer etc]# vi my.f
找到 [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时已经找不到了)
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南