mysql 資料表大小寫敏感問題

2021-06-14 13:59:07 字數 608 閱讀 2127

今天線上資料庫報錯:插入的一條記錄,違反乙個唯一索引的約束。

索引是: day_name_unique

indexes

columns

index type

primary

idunique

day_name_unique

day, name

unique

頓時感到奇怪,程式中明明已經做了校驗了。

根據這個重複的name查詢了一下資料表,果然發現一條記錄,但name的大小寫不同。。。原來是大小寫敏感問題。

檢視建表語句包含:default charset=utf8;參照 使用的collation是utf8字符集對應的預設值。

執行 show collation 可以檢視各個字符集對應的預設collation。

utf8 預設是 utf8_general_ci。 ci 即 case insensitive。

解決辦法:

修改這個欄位的collation

alter table `tablename` change `name` `name` varchar(255) character set utf8 collateutf8_bin not null

MySQL資料表大小寫

在windows平台下進行安裝好mysql之後,在使用sql語句進行資料庫操作的時候是不區分大小寫的。比如在建表的時候建立了一張表pe student,則查詢pe student表中的資料時,使用如下兩種方式都可以 select from pe student select from pe stud...

Mysql大小寫敏感問題

開發十年,就只剩下這套架構體系了!前幾天專案發布到centos上去,訪問登入介面沒問題,一點登入就有問題,有點懷疑是資料庫連線異常了。今天找到了問題的所在。先描述下找問題的流程 在終端輸入tail f catalina.ou命令能實時看到tomcat的輸出,我這問題就很明顯了,就是找不到對應的表,為...

mysql 表名大小寫敏感問題

已有表 user select from user 可以查出來 select from user 報user不存在 這在一些orm框架裡可能會產生問題,比如預設使用大寫的表名,導致找不到表或者報錯 mysql表名大小寫再linux環境預設為敏感的 show variables like lower ...