• mysql 大小写 整理


    mysql字段的值默认不区分大小写,如果有主键的表,主键列就不能插入重复的值(大小写不同)

    实验

    默认方式创建

    CREATE TABLE `t1` (
      `ID` varchar(40) CHARACTER SET utf8 NOT NULL,
      `NAME` varchar(254) CHARACTER SET utf8 NOT NULL,
      PRIMARY KEY (`ID`,`NAME`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    

    插入数据

    insert into t1 values( 'Test','test');
    

    再次插入数据

    insert into t1 values( 'test','test');
    

    提示错误

    ERROR 1062 (23000): Duplicate entry 'test-test' for key 'PRIMARY'
    

    修改字段类型

    CREATE TABLE `t2` (
      `ID` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `NAME` varchar(254) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      PRIMARY KEY (`ID`,`NAME`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    

    插入数据

    insert into t2 values( 'Test','test');
    

    再次插入数据

    insert into t2 values( 'test','test');
    

    查询数据

    mysql> select * from t2;
    +------+------+
    | ID   | NAME |
    +------+------+
    | Test | test |
    | test | test |
    +------+------+
    

    变量名不区分大小写

    mysql> set @var1 = 'Test';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select *, @var1 from t2 where id=@Var1;
    +------+------+-------+
    | ID   | NAME | @var1 |
    +------+------+-------+
    | Test | test | Test  |
    +------+------+-------+
    1 row in set (0.00 sec)
    

    结论

    Linux下mysql默认:

    1. 区分 库名,表名,表名的别名 的大小写
    2. 不区分列名,列名的别名,变量名 的大小写

    备注

    配置/etc/my.cnf,支持不区分大小写

    my.cnf 如下

    [mysqld]
    lower_case_table_names=1
    

    重启MYSQL服务即可

    lower_case_table_names = 0  默认区分大小写
    0:区分大小写
    1:不区分大小写
    

    MySQL在Windows下都不区分大小写。

    若需要区分字段值的大小写,则字段需要设置BINARY属性。

    设置方法:

    • 创建时设置:create table t3(id VARCHAR(10) BINARY);
    • alter修改:alter table t3 modify column id VARCHAR(45) BINARY;
  • 相关阅读:
    js传url中文参数乱码问题
    非远程重启机器
    c#调用带输出参数的存储过程
    在线测试手机、平板页面
    jquery移除select下所有的option选项
    怎样打开谷歌
    ligerui前端框架API地址
    64位操作系统(Windows 2008 R2 X64)ASP.NET 调用32位Excel,word 出现401 – 未授权: 由于凭据无效,访问被拒绝。
    前端框架
    jquery ligerUI中ligerComboBox 初始值问题
  • 原文地址:https://www.cnblogs.com/brookin/p/4740974.html
Copyright © 2020-2023  润新知