我在名为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
。
这是预期的行为吗?翻译不应该回滚吗?如何确保只有在所有表都成功创建时才提交表?
答案 0 :(得分:1)
默认情况下,command-line shell会将所有语句视为以交互方式输入。
要在发生错误时停止,请使用Average time for original method: 1.033838 seconds
Average time for new method: 0.038697 seconds
。