创建触发器以基于另一个表更新表

时间:2014-06-17 15:38:07

标签: mysql sql

我需要你的帮助。我一直在研究一个触发器声明,它似乎没有起作用。

当更新另一个名为 membership 的表上的列时,我需要帮助编写一个触发器来更新名为 serialcode 的表。< / p>

DETAILS:我有两个名为membershipserialcode的表。成员资格表包含以下列

id    fullname    email    date   state    sn

并且序列码表只有

id     sn

我希望更新会员资格中的 sn ,并更新序列码中 sn 的值,其中成员身份 ID 表格与序列码表格中的 ID 相同。

以下是我能够在下面写的内容

CREATE TRIGGER MembershipSerialCode
BEFORE UPDATE ON serialcode
FOR EACH ROW 
BEGIN
if :new.sn != :old.sn
then
   UPDATE membership m
   set membership.sn = :new.sn
   where m.id = :new.id;
end if;
END;

谢谢。

麦克

1 个答案:

答案 0 :(得分:0)

你可以尝试一下,如果你有幸实现它,请告诉我吗?

CREATE Trigger TriggerName                         
 ON SerialNumberTable FOR UPDATE 

AS                         

IF (Update(sn)) -- This is the column on SerialCodeTable that will be updated first                     
BEGIN
IF EXISTS (Select i.id                      
    FROM Deleted d INNER JOIN Inserted i                      
 ON d.id = i.id
 AND d.sn <> i.sn)
 BEGIN
    UPDATE MembershipTable SET MembershipTable.sn = i.sn 
            FROM Inserted i 
            WHERE MembershipTable.id = i.id
 END
END