如果截取的过程比较复杂,可以在数据库自定义函数截取1(),截取2(), 然后再 CREATE TRIGGER trg_ins_A AFTER INSERT ON A FOR EACH ROW BEGIN insert into B(c,d,....) values(截取1(NEW.a列),截取2(NEW.a列)........); END 在数据库写个函数把(Monday)*05:12-11:23,(Tuesday)*10:12-11:23,(Monday)*05:12-11:23,(Tuesday)*10:12-11:23 截取成想要的结果应该可以实现吧
个人意见:用循环+六个变量。来操作(先取值,然后用SQL插入)。我做过可以。但是速度和性能不是很好! 呵呵,关公面前耍小刀! 呵呵~
现在要拆为 c 对应Monday,Tuesday
d 对应 2312-112312,2312-112312
A表做什么操作 B表也要做同样的操作.
再弱弱问一下, 主要是B表字段跟A表字段数量不等.要进行个拆分操作 该怎么搞这个触发器呢.
BEGIN
insert into B(c,d,....) values(截取1(NEW.a列),截取2(NEW.a列)........);
END
比较郁闷.
我当时建议 写成一张表 就没这个麻烦了. 再写个没有实际意义的主键 不听. 比较郁闷.
2表具有相同的字段,复制a表的内容去b表中
a字段 里面一条的内容就很多: (Monday)*05:12-11:23,(Tuesday)*10:12-11:23,(Monday)*05:12-11:23,(Tuesday)*10:12-11:23
所以用截取好象不太可行
然后再
CREATE TRIGGER trg_ins_A AFTER INSERT ON A FOR EACH ROW
BEGIN
insert into B(c,d,....) values(截取1(NEW.a列),截取2(NEW.a列)........);
END 在数据库写个函数把(Monday)*05:12-11:23,(Tuesday)*10:12-11:23,(Monday)*05:12-11:23,(Tuesday)*10:12-11:23
截取成想要的结果应该可以实现吧
疯狂的小猪
你有这方面资料吗, 那触发器里面怎么写处理字段函数呢? 我越问问题越多. 我对数据库这块 用的很少.所以很多不会.
能给传些资料吗? 我油箱 [email protected] 谢谢拉!
c= Monday,Tuesday
d= 2312-112312,2312-112312我提供java的代码,你自己替换为SQL语句
String s = "(Monday)*2312-112312,(Tuesday)*2312-1123123";
System.out.println(s.substring(0,s.indexOf("*"))+","+s.substring(s.indexOf(",")+1,s.indexOf("*",s.indexOf(",")+1)));
System.out.println(s.substring(s.indexOf("*")+1,s.indexOf(","))+","+s.substring(s.indexOf("*",s.indexOf(","))+1));
str.indexOf(s) ==> inSTR(str,s)
str.substring(from,to) = substring(field,from,to);我MySQL 的SQl不熟,你自己调整吧
弄什么java啊