SQLite 事务学习笔记

在 SQLite 中,事务是一组原子性的 SQL 操作。要么所有操作都执行成功,要么所有操作都会被回滚。使用事务可以保证数据的完整性和一致性。

开始一个事务

可以使用 BEGINBEGIN TRANSACTION 命令来开始一个事务,例如:

Copy Code
BEGIN;

提交一个事务

如果所有操作都执行成功,可以使用 COMMIT 命令来提交一个事务:

Copy Code
COMMIT;

回滚一个事务

如果在事务中的任何一个点上发生了错误,可以使用 ROLLBACK 命令来回滚事务:

Copy Code
ROLLBACK;

示例

假设我们有一个包含学生信息的表:

Copy Code
CREATE TABLE students ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER NOT NULL );

现在我们想要进行一些操作,例如添加新学生和删除年龄过大的老学生。我们可以将这些操作放入事务中:

Copy Code
BEGIN; INSERT INTO students(name, age) VALUES('Alice', 21); DELETE FROM students WHERE age >= 30; COMMIT;

在这里,我们首先开始了一个事务,然后向学生表中添加了一个名为 Alice 年龄为 21 的新学生,接着删除了年龄大于等于 30 的老学生,并最终提交了事务。如果在这个过程中发生了错误,比如添加学生时出现了重复的 ID,整个事务会被回滚,也就是说添加的学生和删除的记录都不会生效。

总之,使用事务可以确保数据安全性,减少错误和数据丢失的可能性。