如何克隆sqlite数据库结构而不复制数据(windows)

x33g5p2x  于 2023-04-30  发布在  SQLite
关注(0)|答案(2)|浏览(218)

我有一个sqlite数据库mydatabase。sqlite。我想创建一个新的数据库副本。使用相同的表但不复制数据的sqlite。不久前,我找到了一种方法来使用它。schema命令和重定向,它工作得很好,但现在我再也记不住那个命令了。我疯狂地在这里寻找解决方案,但没有找到。你能帮帮我吗?谢谢

ckx4rj1h

ckx4rj1h1#

类似于:

sqlite3 mydatabase.sqlite ".schema --nosys" | sqlite3 copy.sqlite

在很多情况下都应该这样做。如果你有一个虚拟表和备份的影子表(像FTS表),那可能会导致错误。

n6lpvg4x

n6lpvg4x2#

经过几次尝试和研究,我想出了这个解决方案。它不像我以前发现的那么简单,但它似乎工作得很好。这是在sqlite3的提示符中键入的命令序列。(我不记得的过程只有一行,直接在Windows提示符下键入。)

sqlite> .open mydatabase.sqlite    # open mydatabase.sqlite database
sqlite> .output schema.sql         # redirect output to file schema.sql
sqlite> .schema                    # write schema of mydatabase.sqlite to file schema.sql

sqlite> .open copy.sqlite          # create new empty database
sqlite> .read schema.sql           # copy the structure of mydatabase.sqlite (= schema.sql) to copy.sqlite

最后一个命令给出以下错误:

Error: near line 2: object name reserved for internal use: sqlite_sequence

但新的数据库也会被创建,并且它可以正常工作。

相关问题