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

标签 python database sqlite dump

关于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 ,我没有找到任何具体的东西。有什么想法吗?

最佳答案

获得转储后,您可以执行某种搜索/替换操作。如果“table”具有列“id”、“col_0”和“col_1”,则可以将“插入表值”替换为“插入表(“id”、“col_0”、“col_1”)值”。

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

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

关于python - 如何在插入时生成带有列名称的转储 sqlite3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44147713/

相关文章:

sql-server - SQL Server 2000/2005 中棕地数据库开发的最佳方法

android - 游标索引越界异常 0 android

java - 在android中删除SQLite数据库中的条目

python - 使用一个类同时作为装饰器和装饰器工厂进行操作

python - 我应该如何处理 Python 2.7 中 C 扩展的初始化方法中的错误?

python - 在 SQL 中高效搜索子字符串 [Python/SQLite]

python - 如何选择numpy数组索引的倒数?

mysql - 向 MySQL 数据库中的每一行添加一个字符

sqlite - Xamarin Forms、Sqlite、EF Core 3、迁移和很多困惑

Android SQLite 权限(避免类似 skype 的情况)