• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    mysql事務的回滾

    在mysql數據庫中過程處置一個操作時呈現錯誤,不克不及完當作這個使命時,怎么解決數據庫的數據回到以前狀況呢?下面分享一個mysql事務的回滾操作。我寫的經驗對你進修mysql有幫忙的話,給我投票、點贊或者保藏!

    1數據庫存儲過程的動態語句

    1數據庫怎么備份和恢復數據

    1數據庫對數據的加密于解密

    東西/原料

    • mysql5.6
    • sqlyog

    方式/步調

    1. 1

      登錄mysql,在test數據庫中新建一個表,輸入數據:

      Create Table

      CREATE TABLE `shoufei` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  `xiangmu` varchar(20) NOT NULL,  `jiage` float NOT NULL,  `shuliang` int(11) NOT NULL,  `jine` float DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

    2. 2

      在test數據庫中成立一個“shiwu”的過程:

      CREATE DEFINER=`root`@`localhost` PROCEDURE `shiwu`()

      BEGIN

          END$$

    3. 3

      在過程中界說sql語句的異常處置,若是發生異常就回滾到以前數據,而且退出當前語句塊(begin end)。

      DECLARE EXIT HANDLER FOR SQLEXCEPTION   ROLLBACK;

    4. 4

      過程起頭事務:START TRANSACTION;

    5. 5

      在事務中把id=2的記實點竄為id=1,本家兒鍵獨一性會發生錯誤,直接退出begin-end.

      UPDATE shoufei SET id=1 WHERE id=2;

    6. 6

      接下來提交事務,若是提交當作功換回一個成果集'提交當作功!',:

      COMMIT;

      SELECT '提交當作功!';

    7. 7

      執行過程:call shiwu();

      點竄數據時有錯誤,sql異常執行回滾ROLLBACK。

    8. 8

      把點竄數據改為:

      UPDATE shoufei SET id=6 WHERE id=2;

    9. 9

      再執行過程,事務當作功執行,把id改為6.

    • 發表于 2019-02-14 21:39
    • 閱讀 ( 1111 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆