mysql 触发器 多表
我现在有一张表tale_service现在想做一个触发器当月份为1月份的时候数据插入到tale_service_01,当月份为2月份的时候数据插入到tale_servic...
我现在有一张表 tale_service
现在想做一个触发器
当月份为1月份的时候 数据插入到 tale_service_01,
当月份为2月份的时候 数据插入到 tale_service_02,
.
.
.
以此类推
当月份为12月份的时候 数据插入到 tale_service_12,
第二年的数据1月份也放到talk_service_01
一次类推
另外当表里面有数据更新的时候 更新相应的表里面的数据
求大神指导 展开
现在想做一个触发器
当月份为1月份的时候 数据插入到 tale_service_01,
当月份为2月份的时候 数据插入到 tale_service_02,
.
.
.
以此类推
当月份为12月份的时候 数据插入到 tale_service_12,
第二年的数据1月份也放到talk_service_01
一次类推
另外当表里面有数据更新的时候 更新相应的表里面的数据
求大神指导 展开
1个回答
展开全部
你需要的第一个 trigger
create trigger insert_trigger
after insert on tale_service
for each row
Begin
if new.in_month=1 then
insert into tale_service_01(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=2 then
insert into tale_service_02(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=3 then
insert into tale_service_03(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=4 then
insert into tale_service_04(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=2 then
insert into tale_service_05(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=6 then
insert into tale_service_06(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=7 then
insert into tale_service_07(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=8 then
insert into tale_service_08(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=9 then
insert into tale_service_09(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=10 then
insert into tale_service_10(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=11 then
insert into tale_service_11(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=12 then
insert into tale_service_12(in_month,ext1) values(new.in_month,new.ext1);
end if;
end
第二 没有你表的ddl ,不知道 talk_service 和 分表 talk_service_0N 的关系
不知道怎么写
肯定是 另外 一个 trigger after update on tale_service
补充 这是 talk_service 和 分表 talk_service_0N ddl 一致
如下:
CREATE TABLE `tale_service` (
`in_month` tinyint(1) DEFAULT '0',
`ext1` int(10) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
create trigger insert_trigger
after insert on tale_service
for each row
Begin
if new.in_month=1 then
insert into tale_service_01(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=2 then
insert into tale_service_02(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=3 then
insert into tale_service_03(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=4 then
insert into tale_service_04(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=2 then
insert into tale_service_05(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=6 then
insert into tale_service_06(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=7 then
insert into tale_service_07(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=8 then
insert into tale_service_08(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=9 then
insert into tale_service_09(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=10 then
insert into tale_service_10(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=11 then
insert into tale_service_11(in_month,ext1) values(new.in_month,new.ext1);
elseif new.in_month=12 then
insert into tale_service_12(in_month,ext1) values(new.in_month,new.ext1);
end if;
end
第二 没有你表的ddl ,不知道 talk_service 和 分表 talk_service_0N 的关系
不知道怎么写
肯定是 另外 一个 trigger after update on tale_service
补充 这是 talk_service 和 分表 talk_service_0N ddl 一致
如下:
CREATE TABLE `tale_service` (
`in_month` tinyint(1) DEFAULT '0',
`ext1` int(10) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
更多追问追答
追问
这几张表的表结构是一样的!!第二种方法怎么写呢??谢谢大神
追答
你得告诉我 talk_service 有没有主键?
talk_service 和 分表 talk_service_0N 怎么关联?
是不是 talk_service 有一个 自增的i
talk_service_0N 的 id 和 talk_service 的 id 一致?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询