mysql 大小写敏感问题[ mysql数据库 ]
mysql数据库
时间:2024-12-03 12:13:42
作者:文/会员上传
简介:
mysql关于大小写敏感的话题有以下三个:1,表名字和库名字 linux/unix区分大小写也就是 你可以创建一个叫test和TEST的两个表,但是windows默认是不区分大小写的,LINUX:编辑/etc/my.
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
mysql关于大小写敏感的话题有以下三个:1,表名字和库名字 linux/unix区分大小写也就是 你可以创建一个叫test和TEST的两个表,但是windows默认是不区分大小写的,LINUX:编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,这样就大小写不区分了,也就不能在一个库下创建test和TEST的两个表,并设置相应的值 (备注:为0时大小写敏感,就是区分大小写,为1时大小写不敏感,也就是不区分大小写,默认为0)2,表的字段名字,linux 下默认是不区分大小写的,也就是 一个表中有一个叫id的字段,就不能创建ID的字段。3,表的内容,默认查询是不区分字段值的大小写,如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:A、创建时设置:CREATE TABLE T(A VARCHAR(10) BINARY);B、使用alter修改:ALTER TABLE tablename MODIFY COLUMNclonameVARCHAR(10) BINARY;具体实验过程:mysql> create table ll ( name varchar(100);mysql> insert into ll values('hh');Query OK, 1 row affected (0.00 sec)mysql> insert into ll values('hH');Query OK, 1 row affected (0.00 sec)mysql> select * fromll where name='hh';+------+| name |+------+| hh || hH |+------+2 rows in set (0.00 sec)这时候你添加主键就会报错mysql> alter table ll add primary key (name);ERROR 1062 (23000): Duplicate entry 'hh' for key 'PRIMARY'修改表的name列的值为大小写不敏感。mysql> alter table ll MODIFYname varchar(100) BINARY;Query OK, 2 rows affected (0.02 sec)Records: 2Duplicates: 0Warnings: 0mysql> select * fromll where name='hh';+------+| name |+------+| hh |+------+1 row in set (0.00 sec)然后添加主键就没问题了。mysql> alter table ll add primary key (name);Query OK, 0 rows affected (0.02 sec)Records: 0Duplicates: 0Warnings: 0
小结:MySQL在Linux下数据库名、表名、列名、别名大小写默认规则是这样的:1、数据库名与表名是严格区分大小写的;2、表的别名是严格区分大小写的;3、列名与列的别名在所有的情况下均是忽略大小写的;4、变量名也是严格区分大小写的;MySQL在Windows下都不区分大小写。
展开阅读全文 ∨