SQL unique varchar case sensitivity question
By default MySQL ignores differences in case and trailing spaces on varchar
.
If you need it to be case sensitive, you can alter the table to be varchar(...) binary
.
Use show create table
to better understand how MySQL converts this to full notation.
If you need to pay attention to trailing spaces as well as be case sensitive, use varbinary
instead of varchar
.
Looks like mysql is case insensitive by default:
You probably need to create the column with a case sensitive collation (e.g. utf8_bin):
CREATE TABLE WORDS (
ID BIGINT AUTO_INCREMENT,
WORD VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE,
PRIMARY KEY(ID)
);