2016-04-22 129 views
0

我正在从sqlite迁移到mysql,并陷入了插入或更新语句。我知道mysql使用ON DUPLICATE KEY UPDATE。这是我到目前为止,但它不会更新,它停在第一个重复条目。Python MySQL插入或更新变量

with open('test.csv', 'rb') as csvfile: 
reader = csv.reader(csvfile, delimiter=';', quotechar='"') 
reader.next() 
for row in reader: 
    row[8]=datetime.datetime.strptime(row[8],"%d.%m.%Y").strftime("%Y-%m-%d") 
    cursor.execute("INSERT INTO TABLE (Umsatz,Waehrung,Kundenname,UstID,BUKey,Kundenkonto,Rechnungsnummer,Belegfeld2,Rechnungsdatum,Sachkonto,Belegtext,MwSt) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s); ON DUPLICATE KEY UPDATE", row) 

db.commit() 
+0

是否有关于任何错误的说法? –

回答

0

你需要有一个看看documentation,你的查询将无法正常工作,你的意图它(看对重复密钥更新前的分号)。

INSERT INTO TABLE (  
    Umsatz, 
    Waehrung, 
    ... 
) VALUES (
    %s, 
    %s, 
    ... 
) ON DUPLICATE KEY UPDATE 
    -- here you need to specifiy what to update on duplicate key, see documentation 
;