SQLite的事务和锁
事务
事务定义了一组SQL命令的边界,这组命令或者作为一个整体被全部执行,或者都不执行。事务的典型实例是转帐。
事务的范围
事务由3个命令控制:BEGIN、COMMIT和ROLLBACK。
BEGIN开始一个事务,之后的所有操作都可以取消。
COMMIT使BEGIN后的所有命令得到确认;
而ROLLBACK还原BEGIN之后的所有操作。
如:
sqlite> BEGIN;
sqlite> DELETE FROM foods;
sqlite> ROLLBACK;
sqlite> SELECT COUNT(*) FROM foods;
COUNT(*)
412
上面开始了一个事务,先删除了foods表的所有行,但是又用ROLLBACK进行了回卷。再执行SELECT时发现表中没发生任何改变。
SQLite默认情况下,每条SQL语句自成事务(自动提交模式)。