是否有SQLite命令可以将select查询输出为SQL insert命令?
我正在使用Zeoslib使用SQLite创建内存中的数据库,当程序关闭时,我需要将数据库保存到磁盘上,或者定期将其转储到文件中 由于SQLite3程序无法处理内存中的数据库,有没有办法让SQLite将是否有SQLite命令可以将select查询输出为SQL insert命令?,sqlite,lazarus,in-memory-database,zeos,data-dump,Sqlite,Lazarus,In Memory Database,Zeos,Data Dump,我正在使用Zeoslib使用SQLite创建内存中的数据库,当程序关闭时,我需要将数据库保存到磁盘上,或者定期将其转储到文件中 由于SQLite3程序无法处理内存中的数据库,有没有办法让SQLite将SELECT查询的输出导出为INSERT语句 PS.sqlite3可以将内存中的数据库转储到磁盘,如本线程所示,但内存中的数据库是由另一个应用程序创建的,这就是为什么我看不出如何使示例工作。要将内存数据库保存到磁盘,请使用SQLite创建一个副本。这要求数据库驱动程序实际支持备份API;泽奥斯显然没
SELECT
查询的输出导出为INSERT
语句
PS.
sqlite3
可以将内存中的数据库转储到磁盘,如本线程所示,但内存中的数据库是由另一个应用程序创建的,这就是为什么我看不出如何使示例工作。要将内存数据库保存到磁盘,请使用SQLite创建一个副本。这要求数据库驱动程序实际支持备份API;泽奥斯显然没有
使磁盘上的数据库如此缓慢的不是磁盘访问本身(大多数可以缓存),而是确保数据库保持完整的同步,即使程序或计算机崩溃 有许多设置可以提高速度,但代价是使磁盘上的数据库与内存中的数据库一样不安全:
- 设置为关闭: 使用synchronous OFF(0),SQLite在将数据传递给操作系统后立即继续而不同步。如果运行SQLite的应用程序崩溃,数据将是安全的,但如果操作系统崩溃或计算机在数据写入磁盘表面之前断电,数据库可能会损坏。另一方面,在同步关闭的情况下,提交可以快几个数量级
- 设置为内存: 内存日志模式将回滚日志存储在易失性RAM中。这节省了磁盘I/O,但牺牲了数据库的安全性和完整性。如果在设置内存日志模式时,SQLite应用程序在事务的中间崩溃,那么数据库文件很可能会损坏。
- 增加(默认值通常仅为2MB)
- 禁用