You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLite3命令行中检测.import命令执行时的错误?

SQLite .import命令的.bail机制仅在最后一条记录失败时生效

启用.bail on后,SQLite的.import命令并不会在遇到任意错误时立即终止脚本执行——只有当最后一条待导入的记录失败时,才会触发终止。以下测试案例可复现该行为:

测试脚本

.bail on
PRAGMA foreign_keys = ON;

create table x (a primary key);
create table y (c references x(a));

.import --csv "|echo 2" x
.import --csv "|seq 2" y

.print '尽管插入1失败,但并未终止执行'

create table z (a, b NOT NULL);
.import --csv "|printf 'a\nb,c\n'" z

.print "尽管插入`a`失败,但并未终止执行"

.import --csv "|printf '1,2\n3\n'" z
.print '这段内容不会打印,因为这次错误记录出现在最后一行'

执行结果输出

<pipe>:1: INSERT failed: 外键约束失败
尽管插入1失败,但并未终止执行
<pipe>:1: 预期2列但仅找到1列 - 剩余列填充为NULL
<pipe>:1: INSERT failed: NOT NULL约束失败: z.b
尽管插入`a`失败,但并未终止执行
<pipe>:2: 预期2列但仅找到1列 - 剩余列填充为NULL
<pipe>:2: INSERT failed: NOT NULL约束失败: z.b

内容的提问来源于stack exchange,提问作者Alpaca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:16:01