def run_update_query(self, query: 'md_query.BaseQuery'):
"""
Executes an update query.
:param query: The :class:`.RowUpdateQuery` or :class:`.BulkUpdateQuery` to execute.
"""
if isinstance(query, md_query.RowUpdateQuery):
for row, (sql, params) in zip(query.rows_to_update, query.generate_sql()):
if md_inspection._get_mangled(row, "deleted"):
raise RuntimeError("Row '{}' is marked as deleted".format(row))
if sql is None and params is None:
continue
await self.execute(sql, params)
# copy the history of the row
row._previous_values = row._values
elif isinstance(query, md_query.BulkUpdateQuery):
sql, params = query.generate_sql()
await self.execute(sql, params)
else:
raise TypeError("Type {0.__class__.__name__} is not an update query".format(query))
return query
评论列表
文章目录