通过Python从其他SQLite数据库写入SQLite数据库

问题描述:

我有两个SQLite数据库。通过Python从其他SQLite数据库写入SQLite数据库

[[email protected] python]$ sqlite3 herostat.db 
SQLite version 3.6.20       
Enter ".help" for instructions    
Enter SQL statements terminated with a ";" 
sqlite> .tables        
archer_stat warrior_stat wizard_stat  
sqlite> select * from warrior_stat; 
3000|300|9|9|5|1500|1700|700|200|120 
sqlite> .schema 
CREATE TABLE archer_stat 
    (con int, str int, wit int, _int int, dex int, mp int, pdef int, mdef int, patack int, matack int); 
CREATE TABLE warrior_stat 
    (con int, str int, wit int, _int int, dex int, mp int, pdef int, mdef int, patack int, matack int); 
CREATE TABLE wizard_stat 
    (con int, str int, wit int, _int int, dex int, mp int, pdef int, mdef int, patack int, matack int); 
sqlite> .exit 
[[email protected] python]$ sqlite3 players.db 
SQLite version 3.6.20 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 
sqlite> .schema 
CREATE TABLE users 
    (login text, password text, _class text, con int, str int, wit int, _int int, dex int, mp int, pdef int, mdef int, patack int, matack int); 
sqlite> .exit 

我的Python 2.6代码:

conn = db.connect('herostat.db') 
c = conn.cursor() 
c.execute("SELECT * FROM warrior_stat") 
cur_war = c.fetchone()[:] 

conn2 = db.connect('players.db') 
c2 = conn2.cursor() 
c2.execute("INSERT INTO users(_class) VALUES ('warrior')") 
c2.executemany('''INSERT INTO users(con, str, wit, _int, dex, mp, pdef, mdef, patack, matack) 
    VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', (cur_war,)) 
conn2.commit() 
c2.close() 

我想到:

player|password|warrior|3000|300|9|9|5|1500|1700|700|200|120 

我能得到什么:

player|password||||||||||| 
||warrior|||||||||| 
|||3000|300|9|9|5|1500|1700|700|200|120 

我在做什么错=

P.S.玩家和密码在流程注册时尽早写入。

+0

输出从哪里来? –

+0

我看到输出到db players.db https://dl.dropboxusercontent.com/u/61798016/executemany.png –

+0

你用什么命令来生成输出? –

INSERT语句向表中添加一条新记录。 如果您已经有一条记录并执行两次INSERT,则之后有三条记录。

要更改现有记录中的值,请使用UPDATE语句。

+0

+1。谢谢。我正在尝试使用更新创建查询 –