我需要帮助使用MySQL创建特定的触发器。下面给出了我的触发器的详细信息以及我当前的声明。但是,我的陈述不断给我一个错误信息,所以我做错了。任何帮助都会很棒!谢谢!
问题a)创建一个名为membership_balance_updates的触发器,该触发器将捕获对成员资格中的mem_balance列所做的任何更新。触发器应仅捕获成员余额实际发生变化的那些事务。 mem_num,旧的mem_balance,新的mem_balance,用户,事务日期应该放在membership_balance_audit表中。
我的陈述:
CREATE TRIGGER membership_balance_updates
AFTER UPDATE OF mem_balance ON membership
FOR EACH ROW
INSERT INTO membership_balance_audit
VALUES (mem_mum, old_mem_balance, new_mem_balance, transaction_date,
transaction_user);
以下是创建membership_balance_audit表的以下脚本。
CREATE TABLE IF NOT EXISTS membership_balance_audit
(mem_num INTEGER,
old_mem_balance DECIMAL(10,2),
new_mem_balance DECIMAL(10,2),
transaction_date TIMESTAMP,
transaction_user VARCHAR(50));
答案 0 :(得分:1)
尝试使用:
CREATE TRIGGER membership_balance_updates
AFTER UPDATE ON membership
FOR EACH ROW
BEGIN
IF NEW.mem_balance <> OLD.mem_balance THEN
INSERT INTO membership_balance_audit
(mem_mum, old_mem_balance, new_mem_balance, transaction_date,
transaction_user)
VALUES (OLD.membership_id, OLD.mem_balance, NEW.mem_balance, NOW(),
CONCAT(OLD.first_name, ' ', OLD.last_name));
END IF;
END;