[英]How to update one table in MySQL after insertion in another table
我有两个表,第一个是“ employee_details”,第二个是“ attendance_rule”
employee_details
e_code | e_name | e_type 01 | Ram | Regular 02 | Shyam | Contract 03 | Mohan | Regular
Attenance_rule
e_code | e_type | casual_leaves 01 | Regular | 7 02 | Contract | 6 03 | Regular | 7
我已经在“ attendance_rule”中手动插入了值。
现在的问题是,当组织中的出勤规则发生变化时。 用户必须手动更新所有员工的casual_leave
。
我想要的是,当一个员工详细信息中添加employee_details
表,在入口attendance_rule
表应自动由具有e_code
和e_type
一样e_code
和e_type
的employee_details
表和casual_leaves
等于给casual_leaves
相同type
员工。
我认为这里应该使用触发器。 但我不知道如何在这种情况下使用触发器,即用于临时叶子的进入。 请帮助我...我该怎么做? 有其他触发方式吗?
这听起来像你不需要一个单独的条目attendance_rule
每一位员工,只为每一位员工的类型,所以你并不需要一个触发的。
按照您的建议创建employee_details
:
e_code | e_name | e_type
01 | Ram | Regular
02 | Shyam | Contract
03 | Mohan | Regular
但是,仅使用每种类型的规则创建attendance_rule
:
e_type | casual_leaves
Regular | 7
Contract | 6
如果您需要查找特定雇员的临时请假数量,请结合两个表:
select
e.e_code,
e.e_name,
e.e_type,
a.casual_leaves
from employee_details e
inner join attendance_rule a on e.e_type = a.e_type
要得到
e_code | e_name | e_type | casual_leaves
01 | Ram | Regular | 7
02 | Shyam | Contract | 6
03 | Mohan | Regular | 7
而且,如果您想使其像表格一样易于使用,则可以创建一个视图:
create view emp_all_details as
select
e.e_code,
e.e_name,
e.e_type,
a.casual_leaves
from employee_details e
inner join attendance_rule a on e.e_type = a.e_type
现在您可以简单地说: select * from emp_all_details
以获取:
e_code | e_name | e_type | casual_leaves
01 | Ram | Regular | 7
02 | Shyam | Contract | 6
03 | Mohan | Regular | 7
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.