1. 程式人生 > >關於在SQL中使用觸發器是怎麼將另一個查詢結果作為一條插入語句的值

關於在SQL中使用觸發器是怎麼將另一個查詢結果作為一條插入語句的值

觸發器:

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表中查詢出來的,