MS SQL Server 里面,有一个Deleted临时表,MySQL 该如何去操作?MS SQL Server:
CREATE TRIGGER `dbname`.`triggername` AFTER DELETE
    ON dbname.table1 FOR EACH ROW
BEGIN
    delete from table2 where id in
(select idfrom Deleted);
END;其他insert,update操作后的临时表又存在不?该如何操作?刚接触MySQL时间不长,请大虾们多多指教。

解决方案 »

  1.   

    MYSQL 中的临时表叫做OLD
            delete   from   table2   where   id   in
    (select   id from   OLD); 
      

  2.   

    CREATE   TRIGGER   `dbname`.`triggername`   AFTER   DELETE 
            ON   dbname.table1   FOR   EACH   ROW 
    BEGIN 
     delete       from       table2       where       id       in 
    (select       id   from       OLD);    
    END; 
      

  3.   

    Table 'dbname.old' doesn't exist是不是还有什么开关打开临时表?
      

  4.   


    DELIMITER $$DROP TRIGGER /*!50114 IF EXISTS */ `test`.`tr_delete`$$CREATE TRIGGER `test`.`tr_delete` AFTER DELETE on `test`.`t11_replicas`
    FOR EACH ROW BEGIN
      delete from t11 where id = old.id;
    END$$DELIMITER ;select * from t11_replicas where id =2;query result(1 records)
    id str 
    2 This is a test 2 select * from t11 where id =2;query result(1 records)
    id str 
    2 23434343 
    delete from t11_replicas where id =2;(1 row(s)affected)
    (0 ms taken)
    select * from t11 where id =2;
    Empty set (0.00 sec)
      

  5.   

    不能够直接(select id from OLD)的,只能通过  (old|new).列名 的方式使用。
      

  6.   

    OLD  表示操作前的表
    NEW  表示操作后的表
     
    OLD.status  就是 表 更新或插入删除前对应记录的status字段值
    NEW.status  就是 表 更新或插入删除后对应记录的status字段值 
      

  7.   

    还有一点,对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及OLD同时使用。