node.js - 使用 node-sqlite 将数据从一个数据库复制到另一个数据库 - 格式化 'insert' 语句

标签 node.js typescript sqlite node-sqlite3

我正在编写一个小实用程序来将数据从一个 sqlite 数据库文件复制到另一个。这两个文件具有相同的表结构 - 这完全是关于将行从一个数据库移动到另一个数据库。

我现在的代码:

let tables: Array<string> = [
        "OneTable", "AnotherTable", "DataStoredHere", "Video"
    ]

tables.forEach((table) => {
    console.log(`Copying ${table} table`);

    sourceDB.each(`select * from ${table}`, (error, row) => {
        console.log(row);
        destDB.run(`insert into ${table} values (?)`, ...row) // this is the problem
    })
})

row 这里是一个 js 对象,包含每个表中的所有键控数据。我确信有一种不涉及转义字符串化数据的简单方法。

最佳答案

如果你的数据库驱动没有阻塞ATTACH ,您可以简单地告诉数据库复制所有内容:

ATTACH '/some/where/source.db' AS src;
INSERT INTO main.MyTable SELECT * FROM src.MyTable;

关于node.js - 使用 node-sqlite 将数据从一个数据库复制到另一个数据库 - 格式化 'insert' 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43221905/

相关文章:

python - Sqlite3 with Python - 从外部文件查询

node.js - 如何更改 NodeJS 中的堆栈大小限制?

javascript - Commander.js 在没有命令的情况下调用时显示帮助

typescript - 在声明文件中将 namespace 从外部模块重新导出到全局

javascript - 使用数组 reduce typescript 将类型赋予累加器

Sqlite 从列中删除数据

javascript - Node Express Passport 应用程序尝试登录时出现 404ing

javascript - FormData在前端定义,在后端未定义

typescript - 使用 VS Code 调试在 Docker 容器中使用 ts-node 运行的 TypeScript 应用程序时,如何正确设置断点?

android - 通过不在 android 游标中工作来排序