def run_delete_query(self, query: 'md_query.RowDeleteQuery'):
"""
Executes a delete query.
:param query: The :class:`.RowDeleteQuery` or :class:`.BulkDeleteQuery` to execute.
"""
if isinstance(query, md_query.RowDeleteQuery):
for row, (sql, params) in zip(query.rows_to_delete, query.generate_sql()):
if md_inspection._get_mangled(row, "deleted"):
raise RuntimeError("Row '{}' is already marked as deleted".format(row))
if sql is None and params is None:
continue
await self.execute(sql, params)
md_inspection._set_mangled(row, "deleted", True)
elif isinstance(query, md_query.BulkDeleteQuery):
sql, params = query.generate_sql()
await self.execute(sql, params)
else:
raise TypeError("Type {0.__class__.__name__} is not a delete query".format(query))
return query
评论列表
文章目录