MySQL Trigger Update с выбором из другой таблицы - PullRequest
3 голосов
/ 18 мая 2011

Просто изучаю триггеры, и я создал следующий триггер;

CREATE TRIGGER `incremental_before_ins_tr` BEFORE INSERT ON incremental`
FOR EACH ROW
BEGIN
SET NEW.source = (Select source from crm_record
where msisdn = new.msisdn order by dat DESC limit 1);
END;

Однако значение не обновляется. Есть идеи?

Ответы [ 2 ]

5 голосов
/ 19 мая 2011

Мне действительно удалось решить это самостоятельно.Вот обновленный код

CREATE TRIGGER `incremental_before_ins_tr` BEFORE INSERT ON `incremental`
FOR EACH ROW
BEGIN
SET NEW.source = (Select source from crm_record
where crm_record.msisdn = new.msisdn order by dat DESC limit 1);
END;

Мне нужно было указать имя таблицы до значения столбца в строке 5.

1 голос
/ 18 мая 2011

Похоже, у вас есть опечатка.

Вы ввели инкрементный код с обратной косой чертой вместо того, чтобы заключить его в обратные галочки.

Вероятно, ваш триггер теперь привязан к таблицеincremental`, который, как я предполагаю, не существует.

Поскольку вы исключили вышесказанное.Я вижу, что ключевое слово UPDATE отсутствует.Добавьте UPDATE table перед строкой SET.Замените таблицу названием вашей таблицы.

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