2013-01-20 28 views
0

我有3個表。一張表EMPLOYEE這是一張父表,它擁有公司裏所有的員工,然後我有EMP_ID的子表,其中有EMPLOYEE表中的PK和FK以及其他特定信息。考慮到EMPLOYEE表具有EMP_TYPE,它攜帶員工類型,是否可以通過在EMPLOYEE中輸入記錄,記錄應該自動識別其類型並將其自身複製到相關表中?使父表中的行自動下降到子表

+0

嗯...我可能無法正確認識這個問題,但如果你要值複製到子表聽起來就像你在結構中有一定的冗餘一樣。 – Paul

回答

0

您可以使用trigger function來檢查EMP_TYPE,然後將數據插入到相應的子表中。確保在向父表中插入數據時觸發這些觸發器。

或者你找一個object-relational數據庫。

對於MySQL它可能看起來像這樣(不知道你的模型的真實結構,但它應該很容易地適應您的具體情況):

CREATE TRIGGER testref AFTER INSERT ON Employee 
    FOR EACH ROW BEGIN 
    IF NEW.EMP_TYPE = 'PROGRAMMER' THEN 
     INSERT INTO Programmer (id, type, name, salary, start_date) values (NEW.EMP_ID, NEW.EMP_TYPE, NEW.NAME, NEW.SALARY, NEW.START_DATE); 
    ELSE 
     INSERT INTO Intern (id, type, name, salary) values (NEW.EMP_ID, NEW.EMP_TYPE, NEW.NAME, NEW.SALARY); 
    END IF; 

END;

+0

我希望有一個更簡單的方法......但我想我的命運是觸發器。 – lejadina

+0

你能幫我寫這樣的觸發器嗎? – lejadina

+0

查看已更新的答案 – mistapink

0

這樣做有2種方式:

  1. 使用一間插入數據庫觸發器。
  2. 從前端或業務層做(我假設你有)
+0

如果您需要觸發器的幫助,您必須指定您使用的是哪些dbms(oracle,MySQL等) – Verma