建立乙個儲存過程 在儲存過程中 先查詢 乙個表 for update
見**:
delimiter $$
drop procedure if exists test_sp1 $$
create procedure test_sp1( )
begin
declare t_error integer default 0;
declare count int default 0;
declare sum int default 0;
declare continue handler for sqlexception set t_error=1;
start transaction;
select * from srv_my_service where id =1 for update;
while count < 100000000 do
set sum = sum + count;
set count = count + 1;
end while;
select sum;
if t_error = 1 then
rollback;
else
commit;
end if;
select t_error;
end$$
新開啟乙個視窗 ,執行查詢
select * from srv_my_service where id =1 for update;
執行此語句,將一直處於等待狀態
原因是上一儲存過程先執行查詢 使用for update 占用x鎖,在事務沒有提交的情況下,新的視窗使用 for update 查詢則乙個處於阻塞等待
因為上一儲存過程一直沒有釋放x鎖.
執行下面的語句,可以正常執行.
select * from srv_my_service where id =2 for update;
說明mysql 此時使用行鎖,
執行下面的語句
select * from srv_my_service for update;
任然阻塞等待
同理,執行如下語句仍然的帶上面的結果
update srv_my_service set srv_no ='323345454523434' where id = 2
update srv_my_service set srv_no ='323345454523434'
update srv_my_service set srv_no ='323345454523434' where id = 1
mysql鎖表測試 mysql 行鎖,表鎖 測試
環境 mysql5.5,引擎innodb,sqlyog 行鎖,表鎖區別 其實就是看where後面的條件是否有有索引,有索引的時候就是行鎖,沒有索引的時候就是表索。先建立表結構 create table lock test id int 11 not null auto increment,name ...
測試乙個杯子
考官從辦公室 面試現場 隨意選取乙個簡單物品,假定是乙個喝水的帶廣告圖案的花紙杯,讓應聘人對它設計出盡可能多的測試用例。測試專案 杯子 需求測試 檢視杯子使用說明書 介面測試 檢視杯子外觀 功能度 用水杯裝水看漏不漏 水能不能被喝到 安全性 杯子有沒有毒或者細菌 可靠性 杯子從不同高度落下的損壞程度...
乙個測試環境
這是一次inte ce遇到的,面試人員找來乙個實際填寫的表單,要在domino中按照這個樣式做個表單,然後能夠融合到它們的開發系統中。做表單不是難事,這裡就不說了。但用面試人員告知的網域名稱test.cn訪問看這個預覽效果卻沒有這個也頁面。很奇怪,用瀏覽器用ip位址訪問預覽效果的時候卻提示輸入使用者...