Appearance
事务
向数据库写入 1 万条记录,方案一是写入硬盘 1 万次,效率低下,方案二是先写入内存,再一次性写入硬盘,充分利用内存读写快速的特性。
INSERT INTO t VALUES (1, 'a');
INSERT INTO t VALUES (2, 'b');
INSERT INTO t VALUES (3, 'c');
INSERT INTO t VALUES (4, 'd');BEGIN TRANSACTION;
INSERT INTO t VALUES (1, 'a');
INSERT INTO t VALUES (2, 'b');
INSERT INTO t VALUES (3, 'c');
INSERT INTO t VALUES (4, 'd');
COMMIT;内存的数据可以丢弃,这意味着可以实现回滚。
建库。
sqlite3 test.db建表。
CREATE TABLE t (
id INTEGER PRIMARY KEY,
name TEXT
);事务。
BEGIN TRANSACTION;
INSERT INTO t VALUES (1, 'a');
INSERT INTO t VALUES (2, 'b');
INSERT INTO t VALUES (2, 'c');
INSERT INTO t VALUES (4, 'd');
COMMIT;Runtime error: UNIQUE constraint failed: t.id查询记录。
SELECT * FROM t;1|a
2|b
4|c