關於在SQL中使用觸發器是怎麼將另一個查詢結果作為一條插入語句的值
阿新 • • 發佈:2018-12-19
觸發器:
create trigger Pj_trigger before update on pjxt_majorcourseinfo for each row begin declare zy varchar(20); set zy=old.ZYMC; if old.PJ=0 AND new.PJ=1 then insert into pjxt_operatedflag(XH,KCBH,KKXQ) select (XH,zy,old.KKXQ) from pjxt_studentinfo ps where ZY=zy; //old.KKXQ表示變數 end if; end
如果是將一條查詢結果作為另一個表的輸入且兩張表的欄位一樣:
INSERT INTO 目標表(列名1,列名2.。。。) SELECT (列名1,列名2.。) FROM 來源表 ;
如果是將一條查詢結果作為另一個表的輸入且兩張表的欄位部分一樣(比如將只需要另一個表的一列資料,另一個是固定值)則:
insert into pjxt_operatedflag(XH,KCBH) select (XH,固定資料(例如:常量,變數)) from pjxt_studentinfo ps where ZY=zy;
//其中XH是從pjxt_studentinfo表中查詢出來的,