create table t1(a blob unique) engine= InnoDB; insert into t1 values('RUC'); insert into t1 values ('RUC'); ERROR 23000: Duplicate entry 'RUC' for key 'a' drop table t1; #test for concurrent insert of long unique in innodb create table t1(a blob unique) engine= InnoDB; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` blob DEFAULT NULL, UNIQUE KEY `a` (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 connect 'con1', localhost, root,,; connect 'con2', localhost, root,,; connection con1; set transaction isolation level READ UNCOMMITTED; start transaction; insert into t1 values('RUC'); connection con2; set transaction isolation level READ UNCOMMITTED; start transaction; insert into t1 values ('RUC'); ERROR 23000: Duplicate entry 'RUC' for key 'a' connection con1; commit; set transaction isolation level READ COMMITTED; start transaction; insert into t1 values('RC'); connection con2; commit; set transaction isolation level READ COMMITTED; start transaction; insert into t1 values ('RC'); ERROR 23000: Duplicate entry 'RC' for key 'a' commit; connection con1; commit; set transaction isolation level REPEATABLE READ; start transaction; insert into t1 values('RR'); connection con2; commit; set transaction isolation level REPEATABLE READ; start transaction; insert into t1 values ('RR'); ERROR 23000: Duplicate entry 'RR' for key 'a' connection con1; commit; set transaction isolation level SERIALIZABLE; start transaction; insert into t1 values('S'); connection con2; commit; set transaction isolation level SERIALIZABLE; start transaction; insert into t1 values ('S'); ERROR 23000: Duplicate entry 'S' for key 'a' commit; connection con1; commit; select * from t1; a RUC RC RR S drop table t1; create table t1(a blob unique) engine=Innodb; connection con1; set transaction isolation level READ UNCOMMITTED; start transaction; insert into t1 values('RUC'); connection con2; set transaction isolation level READ UNCOMMITTED; start transaction; insert into t1 values ('RUC');; connection con1; rollback; connection con2; commit; connection con1; set transaction isolation level READ COMMITTED; start transaction; insert into t1 values('RC'); connection con2; set transaction isolation level READ COMMITTED; start transaction; insert into t1 values ('RC');; connection con1; rollback; connection con2; commit; connection con1; set transaction isolation level REPEATABLE READ; start transaction; insert into t1 values('RR'); connection con2; set transaction isolation level REPEATABLE READ; start transaction; insert into t1 values ('RR');; connection con1; rollback; connection con2; commit; connection con1; set transaction isolation level SERIALIZABLE; start transaction; insert into t1 values('S'); connection con2; set transaction isolation level SERIALIZABLE; start transaction; insert into t1 values ('S');; connection con1; rollback; connection con2; commit; connection default; drop table t1; disconnect con1; disconnect con2;