BEGIN UPDATE T_SALARY_SALARIESDATA SET T_SALARY_SALARIESDATA.text1 =1 WHERE Bdgagency:= OLD.Bdgagency; END; 上面這段程式碼的邏輯是錯誤的,錯誤內容有兩點: 1. 不管bdgagency列是否有變化,都會將T_SALARY_SALARIESDATA.text1設為1 2. 使用bdgagency列做為where條件,需要保證Bdgagency是表T_SALARY_SALARIESDATA的主鍵或者唯一索引。否則請使用主鍵做為where條件,以免更新了其它不應當更新的資料。 SQL code? -- 假設兩表中都存在列R_ID,且該列為主鍵 if ( OLD.Bdgagency <> NEW.Bdgagency) then UPDATE T_SALARY_SALARIESDATA SET T_SALARY_SALARIESDATA.text1 =1 WHERE R_ID = OLD.R_ID; end if;
BEGIN UPDATE T_SALARY_SALARIESDATA SET T_SALARY_SALARIESDATA.text1 =1 WHERE Bdgagency:= OLD.Bdgagency; END; 上面這段程式碼的邏輯是錯誤的,錯誤內容有兩點: 1. 不管bdgagency列是否有變化,都會將T_SALARY_SALARIESDATA.text1設為1 2. 使用bdgagency列做為where條件,需要保證Bdgagency是表T_SALARY_SALARIESDATA的主鍵或者唯一索引。否則請使用主鍵做為where條件,以免更新了其它不應當更新的資料。 SQL code? -- 假設兩表中都存在列R_ID,且該列為主鍵 if ( OLD.Bdgagency <> NEW.Bdgagency) then UPDATE T_SALARY_SALARIESDATA SET T_SALARY_SALARIESDATA.text1 =1 WHERE R_ID = OLD.R_ID; end if;