如何在插入时生成带有列名的转储 sqlite3?

How to generate a dump sqlite3 with columns names on insert?

关于 sqlite3 生成的转储:

$ sqlite3 db.sqlite3 .dump > db.dump.txt

在 linux 命令 shell 上执行上述命令后,转储以以下语法模式显示插入:

INSERT INTO "table" VALUES(10,'column0','column1','column2');

但我需要指定列名,如下例所示:

INSERT INTO "table" (id, col_0, col_1, col_2) VALUES(10,'column0','column1','column2');

sqlite3 documentation 中,我没有找到任何具体内容。有什么想法吗?

您可以在获得转储后进行某种 search/replace 操作。如果 "table" 有 "id"、"col_0" 和 "col_1" 列,您可以将 "insert into table values" 替换为 'insert into table ("id", "col_0", "col_1") values'。

您可以在您喜欢的编辑器(例如 vim)或您选择的语言(我推荐 Python)中执行此操作。

可以从转储文件的 "create table" 行中检索列的名称。