MySQL觸發器更新本表數據異常:Can't update table 'tbl' in stored function/trigger because it


MySQL觸發器更新本表數據異常:Can't update table 'tbl' in stored function/trigger because it

博客分類: 數據庫
MySQLJava 
如果你在觸發器里面對剛剛插入的數據進行了 insert/update, 則出現這個問題。因為會造成循環的調用. 

Java代碼  收藏代碼
create trigger test  
before update on tablename  
for each row  
  update tablename set NEW.content = '' where id=NEW.ID;  
END  



應該使用set操作,而不是在觸發器里使用 update,比如 

Java代碼  收藏代碼
create trigger test  
before update on tablename  
for each row  
set NEW.content = '';  
END  


接下來,根據我的應用進行描述一下: 
我的需求是表A插入一條數據,同步到表B。同步之后,更新表A的某個字段。 
Java代碼  收藏代碼
DELIMITER $$  
CREATE  
    TRIGGER triggername BEFORE INSERT  
    ON tableA  
    FOR EACH ROW BEGIN  
      insert into tableB(content) values(new.content);  
      set new.content='';  
    END$$  
DELIMITER ; 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM