程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 關於MySQL事務的操作示例以及注意事項

關於MySQL事務的操作示例以及注意事項

編輯:MySQL綜合教程

本文主要介紹MySQL事務的一些操作示例以及注意事項,接下來我們就開始一一介紹。

事務的特征:

  • Atomicity(原子性)
  • Consistency(穩定性,一致性)
  • Isolation(隔離性)
  • Durability(可靠性)

注意:事務只針對對數據數據產生影響的語句有效。

show engines //查看mysql鎖支持的數據引擎。

MyISAM不支持事物,InnoDB支持事物。

默認情況下,MySQL將以自動提交模式運行,這意味著沒一條小命令都將當做一個只有一條命令的事物來執行。

如果要讓mysql支持支持事務,只需要修改數據引擎alter table person type=INNODB)。

使用start transaction或者begin命令來開啟一個事物,使用commit,或者rollback來結束事物。

事物的結束:事物除了commit,rollback會結束外,使用DDL或者DCL語句也會結束。

保存點:通過保存點機制:用戶可以在事物裡用savepoint name命令設置一些保存點,以後用戶在使用rollback to savepoint name結束事物時,name之前的數據保存,之後的數據不保存。

mysql使用事務的關鍵字

  • begin //打開一個事務。
  • commit //提交到數據庫。
  • rollback //取消操作。
  • savepoint //保存,部分取消,部分提交。
  • alter table person type=INNODB //修改數據引擎。

示例:

  1. begin  
  2.  
  3. update person set name='efgh' where id =10 
  4.  
  5. select * from person  
  6.  
  7. rollback  
  8.  
  9. select * from person 

示例:

  1. alter table person type=INNODB 
  2.  
  3. begin  
  4.  
  5. update person set name='efgh' where id =10 
  6.  
  7. select * from person  
  8.  
  9. commit  
  10.  
  11. select * from person  
  12.  
  13. begin  
  14.  
  15. delete from person where id=21 
  16.  
  17. update person set name='efgh' where id =10 
  18.  
  19. commit/rollback 

針對上面部分提交,必須用到保存點。

事務保存點注意:

1.只能取消到某個保存點 rollback to savepoint p1。

2.不能提交某個保存 commit to savepoint p2//錯誤寫法。

3.最後commit 把未取消的保存點去不提交到數據。

事務保存點使用例子:

  1. begin;  
  2.  
  3. update score set score=40 where scoreid=1;  
  4.  
  5. savepoint s1;  
  6.  
  7. update score set score=50 where scoreid=2;  
  8.  
  9. select * from score;  
  10.  
  11. rollback to savepoint s1;  
  12.  
  13. select * from score;  
  14.  
  15. commit; 

關於MySQL事務的操作就介紹到這裡,如果您想了解更多關於MySQL數據庫的知識,可以看一下這裡的文章:http://database.51cto.com/mysql/,相信一定不會讓大家失望的!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved