在mysql的过程中插入不会锁定表

时间:2012-12-04 18:15:55

标签: mysql insert locking

我有一个mysql程序:

START TRANSACTION;

insert into table1(id, name) values(1, 'a'); -- id is a primary key.
...
delete from table1 where id = 1;
COMMIT;

对此过程的多线程调用将在jdbc中显示错误 密钥table1_UNIQUE_key'

的重复条目“1”

为什么其他线程不会等待这个线程结束?

1 个答案:

答案 0 :(得分:0)

这是因为如果你检查,你已经将表声明为INODB引擎,它允许行级别锁定,如果它已MYSAM,则不会发生此问题