日期:2014-05-17  浏览次数:20447 次

怎样更新一个表的某个字段,另一个表的字段也自动更新?
表a有字段身份证号sfzh,sfzh不是唯一的,表b有字段sfzh是唯一的,其中表a有的身份证号表b不一定有,但表b有的身份证号表a就一定有,现在想更新表a的sfzh,如果表b有这个sfzh号码,表b的sfzh也自动更新(即表b的sfzh更新不用写语句),或者表b的sfzh更新了,表a的sfzh也自动更新(表a的sfzh更新不用写语句),可以做到吗?是不是要建立什么存储过程的,刚学

------解决方案--------------------
触发器
------解决方案--------------------
可以用触发器,也可以连级更新。
------解决方案--------------------
我认为这个问题用触发器解决不好,因为AB两表的更新是联动的,如果在两个表上都建立UPDATE触发器,那么很容易造成循环更新而导致数据库阻塞,并且锁定AB两表。我的建议是,直接将SQL语句写到更新数据的存储过程中,AB两表各写一个,只要SQL的语法和逻辑不出现问题,这个问题解决起来还是比较简单的
------解决方案--------------------
探讨
怎样建立这个触发器啊

------解决方案--------------------
SQL code

--创建触发器的语法
CREATE TRIGGER `<databaseName>`.`<triggerName>`  
 < [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >   
ON <tableName>   
FOR EACH ROW   
BEGIN   
  do something   
END

------解决方案--------------------
探讨

SQL code

--创建触发器的语法
CREATE TRIGGER `<databaseName>`.`<triggerName>`  
 < [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >   
ON <tableName>   
FOR EACH ROW   
BEGIN   
do something   
END

……

------解决方案--------------------
使用触发器吧···
------解决方案--------------------
探讨

我认为这个问题用触发器解决不好,因为AB两表的更新是联动的,如果在两个表上都建立UPDATE触发器,那么很容易造成循环更新而导致数据库阻塞,并且锁定AB两表。我的建议是,直接将SQL语句写到更新数据的存储过程中,AB两表各写一个,只要SQL的语法和逻辑不出现问题,这个问题解决起来还是比较简单的

------解决方案--------------------
探讨
我认为这个问题用触发器解决不好,因为AB两表的更新是联动的,如果在两个表上都建立UPDATE触发器,那么很容易造成循环更新而导致数据库阻塞,并且锁定AB两表。我的建议是,直接将SQL语句写到更新数据的存储过程中,AB两表各写一个,只要SQL的语法和逻辑不出现问题,这个问题解决起来还是比较简单的