MySQL事务处理和锁定语句

内容来自实验楼:MySQL 基础课程 

  1. START TRANSACTION,COMMIT和ROLLBACK语法:
    START TRANSACTION | BEGIN [WORK]
    COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
    ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
    SET AUTOCOMMIT = {0 | 1}

    默认情况下,MySQL采用autocommit模式运行。这意味着,当您执行一个用于更新(修改)表的语句之后,MySQL立刻把更新存储到磁盘中。
    如果您正在使用一个事务安全型的存储引擎(如InnoDBBDBNDB簇),则您可以使用以下语句禁用autocommit模式:
    SET AUTOCOMMIT=0;
    如果您想要对于一个单一系列的语句禁用autocommit模式,则您可以使用START TRANSACTION语句:

    START TRANSACTION;
    SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
    UPDATE table2 SET summary=@A WHERE type=1;
    COMMIT;

    使用START TRANSACTIONautocommit仍然被禁用,直到您使用COMMITROLLBACK结束事务为止。然后autocommit模式恢复到原来的状态。

  2. SAVEPOINT和ROLLBACK TO SAVEPOINT语法:

    SAVEPOINT identifier
    ROLLBACK [WORK] TO SAVEPOINT identifier
    RELEASE SAVEPOINT identifier

    SAVEPOINT语句用于用标识符名称设置命名一个事务保存点。

  3. LOCK TABLES和UNLOCK TABLES语法:

    LOCK TABLES
        tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}
        [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ...

    表锁定只用于防止其它客户端进行不正当地读取和写入。保持锁定(即使是读取锁定)的客户端可以进行表层级的操作,比如DROP TABLE

你可能感兴趣的:(数据库)