簡體   English   中英

插入另一個表后如何在MySQL中更新一個表

[英]How to update one table in MySQL after insertion in another table

我有兩個表,第一個是“ employee_details”,第二個是“ attendance_rule”

  1. employee_details

     e_code | e_name | e_type 01 | Ram | Regular 02 | Shyam | Contract 03 | Mohan | Regular 
  2. 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_codee_type一樣e_codee_typeemployee_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM