楼主不要把user_name做为主键就好了

解决方案 »

  1.   

    这个是mysql问题!
    很多用mysql的论坛都有这个问题。而且不仅仅是这两个词的问题。 
    出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象。 
    如果你在Windows下使用已经编译好的MySQL,可以修改My.ini中的字符集选项。 
    default-character-set = gb2312 
    你试试
      

  2.   

    My.ini中的字符集选项本来就设置的是 
    default-character-set = gb2312 但是还是会出现上述情况,有什么其他方法吗?
      

  3.   

    就是默认的字段值不区分大小写?这点是比较令人头痛的事。如果你在一有唯一约束的列上插入两行值'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就可以区分大小写了。
      

  4.   

    这种方法确实可以,
    我想知道声明为binary之后,与没声明之前有什么区别?
      

  5.   

    这种方法确实可以,
    我想知道声明为binary之后,与没声明之前有什么区别?
      

  6.   

    欢迎J2EE的朋友加入QQ群36643256,学习、交流,共同探讨技术与工作、共享信息、结交朋友
      

  7.   

    我个人认为没有什么不同,加上binary(二进制)目的是让mysql能够在识别大小写,没有什么额外的影响吧