mysql触发器不支持动态sql

这篇博客讨论了MySQL触发器不支持动态SQL的问题。作者通过创建一个before update触发器来展示,当尝试根据pointid插入不同表时,由于MySQL的限制,无法在触发器内部使用动态SQL。博客详细列举了多个if-else语句,根据pointid的值将数据插入不同的point_表中,这在实际应用中可能导致代码维护困难。
摘要由CSDN通过智能技术生成

DELIMITER //

create trigger tri_* before update

on pointtable for each row

begin

if exists (select pointname from pointtable where pointname=new.pointname)

then

select pointtable,pointid into @pointtablename,@pointid from pointtable where pointname = new.pointname;

if @pointid=1

then

insert into point_1(sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=2

then

insert into point_2(sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=3

then

insert into point_3 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=4

then

insert into point_4 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=5

then

insert into point_5 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=6

then

insert into point_6 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=7

then

insert into point_7 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=8

then

insert into point_8 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=9

then

insert into point_9 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=10

then

insert into point_10 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=11

then

insert into point_11 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=12

then

insert into point_12 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),D 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 ATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=13

then

insert into point_13 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=14

then

insert into point_14 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=15

then

insert into point_15 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=16

then

insert into point_16 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=17

then

insert into point_17 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=18

then

insert into point_18 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=19

then

insert into point_19 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=20

then

insert into point_20 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=21

then

insert into point_21 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=22

then

insert into point_22 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=23

then

insert into point_23 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=24

then

insert into point_24 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=25

then

insert into point_25 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=26

then

insert into point_26 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=27

then

insert into point_27 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=28

then

insert into point_28 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=29

then

insert into point_29 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=30

then

insert into point_30 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=31

then

insert into point_31 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=32

then

insert into point_32 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=33

then

insert into point_33 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=34

then

insert into point_34 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.datetime, ‘%Y-%m-%d’),DATE_FORMAT( new.datetime, ‘%h:%i:%s’));

elseif @pointid=35

then

insert into point_35 (sqtname,value,datetime,date,time) values(new.sqtname,new.value,new.datetime,DATE_FORMAT( new.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值