首先創建一個person表:
create TABLE `person`( `id` int not null auto_increment, `name` VARCHAR(255) , `age` int, PRIMARY key (`id`) )
同時打開兩個sql窗口
set autocommit=off; set @id=-1; SELECT auto_increment into @id FROM information_schema.`TABLES` WHERE table_name = 'person' AND TABLE_SCHEMA = 'test'; -- 第1步運行到這里 INSERT into person(id,name,age) VALUES(@id,'lisi',28); -- 第3步運行這里 COMMIT; -- 第5步運行這里(第二種,第4步先運行這里)
set autocommit=off; set @id:=-1; SELECT auto_increment into @id FROM information_schema.`TABLES` WHERE table_name = 'person' AND TABLE_SCHEMA = 'test'; -- 第2步運行到這里 INSERT into person(id,name,age) VALUES(@id,'wangwu',28); -- 第4步運行這里(第二種,第5步運行這里) COMMIT; -- 第6步運行這里
第一種,運行到第4步的時候,報錯了:
[SQL] INSERT into person(id,name,age) VALUES(@id,'wangwu',28);
[Err] 1205 - Lock wait timeout exceeded; try restarting transaction
第二種,運行到第5步的時候
[SQL] INSERT into person(id,name,age) VALUES(@id,'wangwu',28);
[Err] 1062 - Duplicate entry '9' for key 'PRIMARY'