2011-02-02 72 views
0

使用旧例如:如何用python编写数据库插入脚本?

csr = con.cursor() 
csr.execute('Truncate table test.data') 
csr.executemany('INSERT INTO test.data VALUES (?,?,?,?)', Newdata) 
con.commit() 

我怎么会插入%s转换

csr.executemany('INSERT INTO test.data VALUES (?,?,?,?)', Newdata) 

尝试:

csr.executemany('INSERT INTO test.%s VALUES (?,?,?,?)', Newdata) % symbol 

回答

4

应该是:

csr.executemany('INSERT INTO test.%s VALUES (?,?,?,?)' % symbol, Newdata) 

虽然竟被我ð,而不是做这样的事情:

query = 'INSERT INTO test.%s VALUES (?,?,?,?)' % symbol 
csr.executemany(query, Newdata) 

注意?是不是所有的数据库包装默认的占位符。在某些情况下使用%s(例如mysqldb,psycopg2)。在这些情况下,部分构建查询有时会更简单。

这样做:

query = 'INSERT INTO test.%s' % symbol 
query += ' VALUES (%s,%s,%s,%s)' 

否则你会需要这样的东西:

query = 'INSERT INTO test.%s VALUES (%%s,%%s,%%s,%%s)' % symbol 

这是一种痛苦。

+0

我想出方法2阅读旧帖子.... – Merlin 2011-02-02 20:04:09

相关问题