Получить предметы из Выбрать после массового удаления с крючком - PullRequest
0 голосов
/ 22 февраля 2019

Цель:

После DELETE запросов к модели мне нужно знать, какие элементы были удалены, а какие - нет.Это может быть выведено из части SELECT запроса, которая должна быть выполнена до того, как произойдет delete .В настоящее время я делаю это вручную, то есть я выполняю этот явный SELECT перед выполнением массового удаления.Тем не менее, поскольку возвращение количества неудачно удаленных элементов и их соответствующих идентификаторов является частью соглашения, каждый раз, когда что-то удаляется из таблицы «А», это должно происходить.Мне было интересно, можно ли как-нибудь добавить эту информацию к возвращению delete(), например, свойство rowcount.

Просматривая эту запись Я думал, что смогу сделать это со следующим:

from sqlalchemy import Table, Column, ForeignKey, ...
from sqlalchemy.dialects.mysql import INTEGER

a = Table('A',...
           mysql_engine='InnoDB',
           mysql_charset='utf8'
    )

def before_bulk_delete(mapper, connection, target):
     print("BANANAS ******* SOMETHING HAS BEEN DELETED")
     print(target)
     # It's here where I should be able to execute the select part of the statement

event.listen(a, 'before_bulk_delete', before_bulk_delete)

Но это никогда не вызывается вообще.

...