mysql 存储过程插入多个字段_入库模块存储过程--实现一条记录拆分插入多列,并同时插入两表是引用上一个表自增ID,以mysql实例...

当有类似下列应用场景:

将甲同学的姓名插入useinfo表,另甲同学有多张图片,需插入pic表,并且要求两表相关联,图片是一张图片插入一行。

那这就要求,pic表可以获得useinfo表中甲同学的自增ID。这种复杂的插入过程,则需要存储过程了。

以上述情况,可使用如下存储过程

BEGIN

DECLARE po INT DEFAULT 0;

DECLARE oid INT DEFAULT 0;

DECLARE rid VARCHAR(200) DEFAULT "";

DECLARE rid_tmp VARCHAR(200) DEFAULT "";

insert into `useinfo`(usename) values(usename);

select max(id) from `useinfo` into oid;

SET po= LOCATE(",",pics);

SET rid=LEFT(pics,po-1);

SET rid_tmp=SUBSTR(pics,po+1);

WHILE po >0 DO

INSERT INTO `pic`(useid,pic) values(oid,rid);

SET po =LOCATE(",",rid_tmp);

SET rid=LEFT(rid_tmp,po-1);

SET rid_tmp=SUBSTR(rid_tmp,po+1);

END WHILE  ;

INSERT INTO `pic`(useid,pic) values(oid,rid_tmp);

END

50bc4d898b9833676ebe8ab5310ebc5d.png

首先在数据库手动创建存储过程,这个heidisql工具创建存储过程的界面,传入参数,需要手动添加。存储过程建立好后。在火车采集器的入库模块中可以直接调用:

c5c73e513a9f51c43ab747123bf59cc3.png

其中需要注意,插入的图片标签中的值是以 逗号间隔:

2a1ea5655bb66128329ba0345caa3770.png

执行结果:

64f92d6944d692c3df763f32582fb885.png

cb0303930d537c37685850fa59f7066b.png

若是有类似的情况可以修改下存储过程,一些关于存储过程的详细使用方法,可以百度教程自行学习哦。这里仅提供使用示例。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值