005 Sql 中需要注意的事務問題
SqlServer 中開啓與關閉事務
select * from TestTransaction;
-- 開啓事務
Begin Transaction -- isolation read committed
-- 帶條件的更新
update TestTransaction set name = '李四' where id = 1;
-- 插入數據
INSERT INTO TestTransaction(NAME,age) VALUES('張三',18);
-- 提交事務
COMMIT Transaction
-- 回滾事務
ROLLBACK Transaction
MySql中開啓與關閉事務
select * from TestTransaction;
-- 開啓事務
START TRANSACTION;
-- 帶條件的更新
update TestTransaction set name='李四' where id = 1;
-- 插入數據
insert into TestTransaction(name,age) values('張三',18);
-- 提交事務
COMMIT
-- 回滾事務
ROLLBACK
值得注意的是,在數據庫表中,如果我們建立的表沒有建立主鍵將面臨嚴重的問題,當此表在事務中被進行Insert操作,並且在事務進行中,那麼當別的任何數據庫連接對象,來查詢或者操作此表時,整個表都是被鎖定狀態.(即只能等待操作此表的事務提交或者回滾,才能進入到此表中)整個表都被鎖了,這是個很嚴重的問題,所以我們建立數據庫表時,我們一定要爲其指定主鍵,這樣的話,即使有事務在操作此表,那麼事務鎖定的也僅僅是行(被事務操作的行),而不是整個表.