MySQL: как использовать разделители в триггерах?
Кто-то сказал мне, что мне нужно использовать разделитель в моем триггере. Я смотрю на страницу руководства MySQL и нахожу это в примере; однако, это не в общей документации.
Вот код, который я пытаюсь исправить:
CREATE TRIGGER adult BEFORE INSERT OR UPDATE ON table5.column5
FOR EACH ROW BEGIN
UPDATE table1 SET column5 = table5.column5 WHERE table5id = table1xtable5.table5id WHERE table1xtable5.table1id = OLD.table1.id$
END$
Честно говоря, я понятия не имею, как это сделать, и документация наhttp://dev.mysql.com/doc/refman/5.5/en/create-trigger.html кажется ужасно неадекватной ссылкой. Например, когда читаете оold
" а также "new
"оно ссылается на"subject table
"- таблица, связанная с триггером. Есть две таблицы, связанные с этим триггером, и я на самом деле пытаюсь связать больше таблиц с этим триггером .... Рассматривая пример кода,UPDATE
В строке, которая влияет на table4, используются только столбцы внутри table4 (они добавляют 1 к значению). Кроме того, они используютWHERE ~ a3 = NEW.a1
, Я не думаю, что этот идентификатор работает таким образом. Не должно быть универсального идентификатора, который бы работал в разных таблицах. Они определенно должны использовать таблицу взаимозависимостей в примере для применимости.
Я действительно задал похожий вопрос ранее сегодня о том, каким будет хороший метод для этого, но теперь мне просто интересно, есть ли метод. Спасибо за чтение. :)
Вот пример триггера, который обновляет другую таблицу, но, похоже, он не использует разделитель:
CREATE TRIGGER mytrigger BEFORE INSERT ON odp
FOR EACH ROW
UPDATE total_points SET points = points + NEW.points;
В этом примере не объясняется, какodp
а такжеtotal_points
перекрытия. Как мы можем быть уверены, чтоtotal_points
таблицыpoints
строка правильнаяpoints
ряд? Какой ряд вpoints
таблица будет обновлять MySQL? Икс//
Таким образом, не должно быть никакого способа указать, какую из строк total_points.points обновитьBEFORE INSERT ON odp
?