Thông thường mysql không phân biệt chư hoa, chữ thường vậy có cách nào để insert dữ liệu trong cột primary key mà phân biệt chữ hoa, chữ thường không nhỉ. Ví dụ với id là aaa và AAA thì vẫn có thể insert và select được
Insert dữ liệu trong mysql mà phân biệt kí tự hoa - thường
Câu hỏi hay !
MySQL và SQL Server sử dụng case - insensitive by default.
Nếu bạn muốn phân biệt chử Hoa/Thường thì đổi sang collation khác. Trong trường hợp này có thể đổi collation ở mức column như sau:
MariaDB [labs]> CREATE TABLE test_cs( c1 VARCHAR(10) COLLATE utf8_bin PRIMARY KEY, c2 varchar(10));
Query OK, 0 rows affected (0.07 sec)
MariaDB [labs]> desc test_cs ;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| c1 | varchar(10) | NO | PRI | NULL | |
| c2 | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)
MariaDB [labs]>
MariaDB [labs]> insert into test_cs values('AAAA','row 1') ;
Query OK, 1 row affected (0.03 sec)
MariaDB [labs]> insert into test_cs values('aaaa','row 2') ;
Query OK, 1 row affected (0.04 sec)
MariaDB [labs]> select * from test_cs ;
+------+-------+
| c1 | c2 |
+------+-------+
| AAAA | row 1 |
| aaaa | row 2 |
+------+-------+
2 rows in set (0.01 sec)
MariaDB [labs]> insert into test_cs values('aaaa','row 3') ;
ERROR 1062 (23000): Duplicate entry 'aaaa' for key 'PRIMARY'
MariaDB [labs]>
2 Likes