每当用户从表中删除数据时,我都会触发 SQL 触发器。我想在删除当前数据之前更新另一个表。我无法获取当前已删除的行数据。如何在SQL触发器中获取当前删除的数据的内容。
CREATE TRIGGER `before_insert_money` BEFORE DELETE ON `payment`
FOR EACH ROW BEGIN
DECLARE TEMP INT;
SELECT OLD.user_id into TEMP
FROM OLD;
UPDATE user set monthly_limit=TEMP where id=1;
END
Run Code Online (Sandbox Code Playgroud)
您只需要引用OLD.userid而不是存储到另一个变量中TEMP。此外,没有OLD可以在FROM子句中使用的表。您只需要使用OLD.<column name>要删除的行的特定列的值即可。
DELIMITER $$
CREATE TRIGGER `before_insert_money` BEFORE DELETE ON `payment`
FOR EACH ROW BEGIN
UPDATE user set monthly_limit = OLD.user_id where id=1;
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)