@MEGApixel23

Как перехватить скриптом событие ПОСЛЕ удаления записи и ПЕРЕД удалением связанных с ней по внешнему ключу записей?

Недавно был на собеседовании и был задан такой вопрос. Довольно специфический, не знаю как правильно нагуглить решение.

Раскрою чуть шире вопрос. У нас есть таблица пользователей.
CREATE TABLE user (
  id int(11) NOT NULL AUTO_INCREMENT,
  username varchar(255) NOT NULL,
  PRIMARY KEY (id)
)


И таблица счетов, связанных с пользователем через внешний ключ
CREATE TABLE accounts (
  id int(11) NOT NULL AUTO_INCREMENT,
  balance int(11) NOT NULL,
  user_id int(11) NOT NULL,
  PRIMARY KEY (id),
  INDEX user_id (user_id),
  CONSTRAINT user_relation_ibfk_1 FOREIGN KEY (user_id)
  REFERENCES user (id) ON DELETE CASCADE ON UPDATE CASCADE
)


И я хочу скриптом словить момент после удаления записи из `user` и перед удалением связанных записей из `accounts`. Возможно ли это вообще при помощи PHP?
  • Вопрос задан
  • 2390 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Скорее всего такое удаление обрабатывается как атомарная операция, вписаться в середину невозможно. Как вариант - убрать ON DELETE CASCADE и добавить триггер BEFORE DELETE с удалением связанных записей по триггеру.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы