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

解决方案 »

  1.   

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

  2.   


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