Skip to content

Commit ddcc906

Browse files
spicy-sauceMeir Shpilraien (Spielrein)
andauthored
MySQL - Changed update query instead of merge strategy … (#89)
Co-authored-by: Meir Shpilraien (Spielrein) <meir@redislabs.com>
1 parent ade71d4 commit ddcc906

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

rgsync/Connectors/sql_connectors.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)