2017-01-30 10 views
1

У меня есть две таблицы A и B в базе данных mysql. Таблица А, имеющая brnd_id, R_2000ml. Таблица B, содержащая diff, val. Я пишу триггер для обновления таблицы B, когда обновляется R_2000ml. Я вычисляя разницу NEW.R_2000ml и OLD.R_2000ml и собирается сохранить результат в diff столбце и передавая логическое значение 1, чтобы получить обновленную информацию в val столбце таблицы B.Триггер MySQL для обновления другой таблицы при обновлении значения в текущей таблице

Ниже мой триггер кода, который не работает как ! значения не получают обновляться в таблице В.

DELIMITER // 
    DROP TRIGGER IF EXISTS `myTrigger`; 
    CREATE DEFINER=`root`@`localhost` TRIGGER `myTrigger` 
    AFTER UPDATE ON `A` 
    FOR EACH ROW 
    BEGIN 
     DECLARE brndid integer; 
     DECLARE stkdate date; 
     if NEW.`R_2000ml` <=> OLD.`R_2000ml` 
     THEN 
     if NEW.`R_2000ml` > OLD.`R_2000ml` 
     THEN 
      update B set diff= NEW.R_2000ml- OLD.R_2000ml,val=1; 
     END IF; 
     END IF; 
    END;// 
DELIMITER ; 
+0

Ваш триггер должен обновить * все * строки в 'b'. , , это ваше намерение? –

+0

Таблица B содержит только одну строку и будет использоваться для другой цели. – WASEEM

ответ

0

в Вашем случае пункт используется «< =>» Этот оператор выполняет сравнение равенства как оператор =, так что вы должны использовать <> или =:

if NEW.`R_2000ml` <> OLD.`R_2000ml` 

или

if NEW.`R_2000ml` != OLD.`R_2000ml` 
+0

Это решение сработало для меня. Благодарю вас, @Imanez. – WASEEM

 Смежные вопросы

  • Нет связанных вопросов^_^