如果语句失败,SQLite 会自动回滚吗?

Does SQLite rollback automatically if statement fail?

有这个 sqlite 文档:https://www.sqlite.org/lang_transaction.html 它没有说明如果我有这样的情况会发生什么:

BEGIN;
INSERT INTO a (x, y) VALUES (0, 0);
INSERT INTO b (x, y) VALUES (1, 2); -- line 3 error here, b doesn't have column x
COMMIT;

在这种情况下会发生什么?如果第3行有错误,是commit还是rollback?我希望自动回滚,但我想确定一下。

SQL 个语句单独执行。

当一条语句失败时,回滚这条语句的任何影响,但事务保持打开和活动状态。 当应用程序收到错误代码时,它必须决定是否要回滚事务、重试或执行其他操作。

如果您使用的函数执行多个 SQL 语句,则没有任何变化;效果就好像您单独执行了失败语句之前的所有语句一样。