2011-02-02 60 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

相關問題