关于在SQL中使用触发器是怎么将另一个查询结果作为一条插入语句的值

版权声明:博主原创转载请注明出处:https://blog.csdn.net/qq_42952331 https://blog.csdn.net/qq_42952331/article/details/85041592

触发器:

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表中查询出来的,

猜你喜欢

转载自blog.csdn.net/qq_42952331/article/details/85041592