回答

收藏

Python和sqlite3-导入和导出数据库

技术问答 技术问答 433 人阅读 | 0 人回复 | 2023-09-14

我正在尝试编写脚本来导入数据库文件。我编写了脚本来导出文件,如下所示:: F; c4 V+ K+ W  w% ?4 C
import sqlite3) f5 p4 e3 Z/ ~, w4 c# J
con = sqlite3.connect('../sqlite.db')
& V  R7 Z) j; w# A0 K3 Jwith open('../dump.sql', 'w') as f:
2 g6 d: p' E! ~& v5 V- |    for line in con.iterdump():
0 x- z& z* f* ^( o# W" C        f.write('%s\n' % line)
$ N! v( d! y" B) M现在,我希望能够导入该数据库。我试过了 :
2 k9 `! o1 d' I8 P8 Jimport sqlite3
- U, p& Z  \7 X  X' P5 w; [5 L# ^3 \con = sqlite3.connect('../sqlite.db')4 ^2 W; r6 S! E) g8 H3 R# {) }% \
f = open('../dump.sql','r')& j2 h) O0 X2 L+ y' s& A
str = f.read()$ t: O3 v# M0 o
con.execute(str)
( P' I& ~6 E! {0 c2 g+ c2 {% G但是我不允许执行多个语句。有没有办法让它直接运行SQL脚本?+ F; d2 w7 ~& E* _0 V
               
" Y9 s% y$ V2 F: \$ @5 ]& H) C解决方案:
4 P, I/ u4 r/ s7 i/ @                * P7 Z6 j/ e" {8 \/ |" H3 j
- m7 M  S) ], l3 J
3 s$ s- L7 q1 }8 V9 J
                sql = f.read() # watch out for built-in `str`( Q3 j2 f3 O- V: B5 ^
cur.executescript(sql)" W: ^5 a6 E. h" {8 r
文件资料。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则