MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / insertOrUpdate

Method insertOrUpdate

src/Db/DbCursor.py:126–138  ·  view source on GitHub ↗
(self, table, query_sets, query_wheres, oninsert={})

Source from the content-addressed store, hash-verified

124
125 # Creates on updates a database row without incrementing the rowid
126 def insertOrUpdate(self, table, query_sets, query_wheres, oninsert={}):
127 sql_sets = ["%s = :%s" % (key, key) for key in query_sets.keys()]
128 sql_wheres = ["%s = :%s" % (key, key) for key in query_wheres.keys()]
129
130 params = query_sets
131 params.update(query_wheres)
132 self.execute(
133 "UPDATE %s SET %s WHERE %s" % (table, ", ".join(sql_sets), " AND ".join(sql_wheres)),
134 params
135 )
136 if self.cursor.rowcount == 0:
137 params.update(oninsert) # Add insert-only fields
138 self.execute("INSERT INTO %s ?" % table, params)
139
140 # Create new table
141 # Return: True on success

Callers

nothing calls this directly

Calls 2

executeMethod · 0.95
updateMethod · 0.45

Tested by

no test coverage detected