MySQL 事务操作与游标的使用(mysql事务游标)
MySQL 事务操作与游标的使用
MySQL 数据库管理系统使用事务操作可以保证在一个操作运行完成之前,其他操作不会影响本操作的结果。事务操作由四部分操作组成:启动、提交、回滚和终止,只有在操作完成以后,才会将数据写入到数据库中并影响真实数据,否则可以随时回滚,保证数据一致性。
简单来说,MySQL 事务操作是一个包含一系列增加、删除、修改、查询 SQL 语句的操作,每个操作都要在事务范围内完成,最后再提交结果,如果出错了,可以回滚。而游标则是一个指示器,用来提取一次在语句中查询出的多条记录,游标可以让我们逐条处理和取回检索出的记录。
创建游标的语法是:DECLARE cursorName CURSOR FOR select_statement。如果需要开启事务,MySQL 将会关闭自动提交模式,语法如下:START TRANSACTION。当事务启动时,在事务外执行的查询就不受事务的影响。事务中执行的查询,如果是多条语句,需要使用游标。游标可以将查询结果集拆分成多条,以便依次进行处理,代码如下:
START TRANSACTION;
DECLARE result_cursor CURSOR FOR SELECT result FROM tablename;
OPEN result_cursor;
FETCH FROM c1 INTO result;
/* Using result to do some operations */
CLOSE result_cursor;
COMMIT;
启动事务,定义并打开游标,使用 FETCH 命令一条条获取查询的数据,完成后要关闭游标,然后提交事务,更新数据库。另外,回滚事务必须在提交之前,语法为:ROLLBACK。
使用 MySQL 事务操作和游标可以让我们更方便地操作多条语句,保证数据的一致性,可以有效减少数据库中其它操作对本次操作的影响。