@@ -206,11 +206,12 @@ def __init__(self, connection, tableName, pk, exactlyOnceTableName=None):
206206
207207 def PrepereQueries (self , mappings ):
208208 def GetUpdateQuery (tableName , mappings , pk ):
209- query = 'REPLACE INTO %s' % tableName
209+ query = 'INSERT INTO %s' % tableName
210210 values = [val for kk , val in mappings .items () if not kk .startswith ('_' )]
211- values = [self . pk ] + values
211+ values = [pk ] + values
212212 values .sort ()
213- query = '%s(%s) values(%s)' % (query , ',' .join (values ), ',' .join ([':%s' % a for a in values ]))
213+ query = '%s (%s) VALUES (%s) ON DUPLICATE KEY UPDATE %s' % (query , ',' .join (values ), ',' .join ([':%s' % a for a in values ]), ',' .join (['%s=values(%s)' % (a ,a ) for a in values ]))
214+
214215 return query
215216 self .addQuery = GetUpdateQuery (self .tableName , mappings , self .pk )
216217 self .delQuery = 'delete from %s where %s=:%s' % (self .tableName , self .pk , self .pk )
@@ -239,9 +240,9 @@ def GetUpdateQuery(tableName, mappings, pk):
239240 VALUES ({})
240241 ON CONFLICT({}) DO UPDATE
241242 SET
242- {}""" .format (tableName , cols , self . pk ,
243+ {}""" .format (tableName , cols , pk ,
243244 value_stmt ,
244- self . pk ,
245+ pk ,
245246 ', ' .join (update_stmts ))
246247 return query
247248 self .addQuery = GetUpdateQuery (self .tableName , mappings , self .pk )
0 commit comments