当表A有数据insert的时候触发,更新表B的某条数据
表A有列
aid  identity(1,1),
xid integer表B有列
bid identity(1,1),
xid integer(外键A表xid),
yid integer当表A有数据插入时,表B的xid字段与表A的xid字段对应的那条数据被更新,yid+1,请稳这个触发器应该怎么写?

解决方案 »

  1.   

    自己顶一个~
    CREATE TRIGGER a_after_ins AFTER INSERT ON a
    FOR EACH ROW
    BEGIN
    DECLARE xid INT;
    SET xid = ????;
    UPDATE b SET yid = yid + 1 WHERE xid = xid;
    END;问好那里不解,不知怎样得到刚出入的数据
      

  2.   

    trigger里有二个关键字挺好用的:NEW和OLD,分别用于insert和delete,而update就两个都能用.比如:
    现在insert了一条记录,在trigger中可以用NEW.id去引用刚insert记录的ID.
    OLD同理,具体看手册.
      

  3.   

    CREATE TRIGGER a_after_ins AFTER INSERT ON a
    FOR EACH ROW
    BEGIN
    DECLARE xid INT;
    SET myid = NEW.xid;
    UPDATE b SET yid = yid + 1 WHERE xid = myid;
    END;这样好像会报错~~不知错在哪里~
      

  4.   

    这个已经解决了~~那请问如果DECLARE 的那个类型是字符串类型的呢?我用STRING报错
      

  5.   

    DECLARE xid INT
    如果xid是字符串的,写成DECLARE xid STRING会报错