SQlite:创建表的脚本失败时不会回滚

时间:2016-10-03 15:45:13

标签: sqlite

我在名为test.sql的文件中有这个简单的脚本:

begin;
create table t1 (id integer);
create table t2; --error here
commit;

脚本在第3行有一个明显的错误。我使用以下命令行调用此脚本:

sqlite3.exe test.db ".read test.sql"

正如所料,可执行文件无法指责第3行语法错误。但是,尽管存在开头test.db,但数据库t1已创建并包含表begin

这是预期的行为吗?翻译不应该回滚吗?如何确保只有在所有表都成功创建时才提交表?

1 个答案:

答案 0 :(得分:1)

默认情况下,command-line shell会将所有语句视为以交互方式输入。

要在发生错误时停止,请使用Average time for original method: 1.033838 seconds Average time for new method: 0.038697 seconds