怎样更新一个表的某个字段,另一个表的字段也自动更新?

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

10 个解决方案

#1


触发器

#2


可以用触发器,也可以连级更新。

#3


怎样建立这个触发器啊

#4


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

#5


引用 3 楼  的回复:
怎样建立这个触发器啊

create trigger..

#6



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

#7


引用 6 楼  的回复:
SQL code

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

……


触发器 

#8


使用触发器吧···

#9


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


值得考虑

#10


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

你的担心是多余的。

#1


触发器

#2


可以用触发器,也可以连级更新。

#3


怎样建立这个触发器啊

#4


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

#5


引用 3 楼  的回复:
怎样建立这个触发器啊

create trigger..

#6



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

#7


引用 6 楼  的回复:
SQL code

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

……


触发器 

#8


使用触发器吧···

#9


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


值得考虑

#10


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

你的担心是多余的。