Mysql触发器更新多个表中的列
我想在表1中更新列时更新表2中的列 我有2名员工和公司详细信息 这是我的员工表Mysql触发器更新多个表中的列,mysql,triggers,Mysql,Triggers,我想在表1中更新列时更新表2中的列 我有2名员工和公司详细信息 这是我的员工表 emp_id | emp_name | location 1 | xxx | germany 2 | yyy | auckland 这是我公司的详细资料表 id | emp_name | role 1 | xxx | software developer
emp_id | emp_name | location
1 | xxx | germany
2 | yyy | auckland
这是我公司的详细资料表
id | emp_name | role
1 | xxx | software developer
2 | yyy | tester
当我尝试更新
employee
表中的列emp\u name时,我希望自动更新company\u details
中的字段emp\u name。我是否可以编写一个查询,当一个表列被更新时,另一个表列也会被更新。尽管您可以这样做
CREATE TRIGGER emp\u name\u update
更新员工信息后
每行
更新公司详细信息
设置emp\u name=NEW.emp\u name
其中emp_name=OLD.emp_name;
这里是演示
这是一个非常糟糕的模式设计。您应该在company\u details
中使用emp\u id
作为外键
createtableemployee
(
emp_id int not null主键,
emp_名称varchar(32),
位置varchar(32)
);
创建表格公司详细信息
(
id int非空主键,
emp_id int,
角色varchar(32),
外键(emp_id)引用员工(emp_id)
);
这样,您不需要更新任何内容,而是在查询时将两个表连接起来
选择id、emp\u名称、角色
从公司_详情d加入员工e
在d.emp_id=e.emp_id;
下面是演示mysql和sql server是不同的野兽。是的,您可以更新多个表。您可以使用MERGE WITH update语句扫描您是否可以给出一个示例查询@Mihai你能给出一个查询示例吗@甘尼什·德夫勒卡