Сравнение одного столбца с другим столбцом в разных таблицах и ввод значения в другой триггер столбца MySQL - PullRequest
1 голос
/ 22 марта 2019

У меня есть таблица, которая называется членство.Один столбец называется amount_paid, а другой - valid_membership.У меня есть еще одна таблица с именем m_type со столбцом под названием ценаУсловием связывания является WHERE members.type_id = m_type.type_id

. Я хочу, чтобы перед вставкой в ​​таблицу членства был добавлен триггер, чтобы проверить, составляет ли уплаченная сумма> = 1/2 цены.Если оно больше, я хочу, чтобы 1 было помещено в valid_membership, иначе, если это не так, тогда 0 будет помещено в valid_membership.

Просто возникли небольшие проблемы с правильным синтаксисом. Это то, что я уже пробовал-

DELIMITER
 //
CREATE TRIGGER valid_membership
    BEFORE INSERT ON membership
    FOR EACH ROW
        BEGIN
        IF (NEW.amount_paid >= 1/2 price) THEN
    SET valid_membership = '1' ELSE '0'
    WHERE membership.type_id = m_type.type_id
  END IF;
END
//
DELIMITER ;

1 Ответ

1 голос
/ 25 марта 2019
DELIMITER //

CREATE TRIGGER valid_membership
BEFORE INSERT ON membership
FOR EACH ROW
BEGIN
  SELECT
    price INTO @price
  FROM
    m_type
  WHERE
    type_id = NEW.type_id
    AND ... -- something missing here as linking by the type_id only is too wide, imho
  ;

  SET NEW.valid_membership = IF(NEW.amount_paid >= @price / 2, 1, 0);
END
//
DELIMITER ;
...