我有两个表首先是“employee_details”,第二个是“attendance_rule”
employee_details
e_code | e_name | e_type
01 | Ram | Regular
02 | Shyam | Contract
03 | Mohan | Regular
attendance_rule
e_code | e_type | casual_leaves
01 | Regular | 7
02 | Contract | 6
03 | Regular | 7
我已在“attendance_rule”中手动插入值。
现在的问题是当出勤规则在组织中发生变化时。用户必须手动更新所有员工的casual_leave
coloumn。
我想要的是,当在employee_details
表中添加员工详细信息时,attendance_rule
表中的条目应自动生成e_code
和e_type
相同的e_code
表的e_type
和employee_details
以及casual_leaves
等于同一casual_leaves
员工的type
。
我认为应该在这里使用触发器。 但我不知道如何使用触发器来处理这种状况,即休闲叶片的进入。 请帮帮我......我该怎么做?有没有办法做其他触发?
答案 0 :(得分:0)
听起来你不需要在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