MySQL обновление, вставка, удаление с объединениями - PullRequest
1 голос
/ 14 мая 2011

Я знаю, что вы можете делать операторы объединения в SELECT,

но вы также можете выполнять объединения с использованием операторов UPDATE, INSERT и DELETE, чтобы строки из нескольких таблиц удалялись / обновлялись / вставлялись, если они связаны друг с другом и удовлетворяли операторам WHERE ...

также будет ли это работать как на левом, так и на правом соединениях, а также на внутренних соединениях?

Ответы [ 2 ]

0 голосов
/ 14 мая 2011

Вы можете сделать это с помощью триггера, хотя

DELIMITER $$

CREATE TRIGGER au_table1_each AFTER UPDATE ON table1 FOR EACH ROW
BEGIN
  UPDATE table2 SET fieldY = new.fieldX WHERE ...;
END $$

DELIMITER ;

Триггер сработает при каждом обновлении и обновит table2 с использованием некоторых новых данных в table1.
Естьзапускает BEFORE и AFTER действие, которое может быть UPDATE, INSERT или DELETE

См .: http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html
и: http://www.databasedesign -ресурс.ком / MySQL-triggers.html

0 голосов
/ 14 мая 2011

Вы можете выполнять объединения при обновлении / вставке / удалении, но не для обновления записей в этих объединенных таблицах. Вам необходимо обновить каждую таблицу в отдельности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...