我在名为的文件中有这个简单的脚本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
open t1
,但数据库已创建并包含表begin
。
这是预期的行为吗?转换不应该回滚吗?如何确保仅在所有表创建成功后才提交表?
默认情况下,命令行外壳将所有语句视为以交互方式输入。
要在发生错误时停止,请使用.bail on
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句