5 个回答

可以通过 FOREIGN KEY 约束 + 存储过程 实现这个需求
但非必要情况不建议冗余两份数据,既增加浪费存储空间,同时增加数据维护成本。

两种办法:

  1. 同时修改两个表

  2. 将这两个字段单独拎出来放到一个表里,查询的时候join这个表,这样只需要改一次

通过触发器(trigger)实现即可,比如users表和orders表,其中users表结构为user_id,user_name,而orders表结构为order_id,user_id,如果希望修改users的user_id同时orders的user_id一起更新,只需要在users表上设置一个触发器,该触发器设置方式如下:
mysql> delimiter //
mysql> create trigger upd_id after update on users
for each row
begin
if old.user_id <> new.user_id then

update orders set user_id=new.user_id;

end if;
end; //
mysql> delimter ;

触发器就行了。。。用存储过程什么的性能还低

我也觉得触发器比存储过程好点。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题