[英]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.