入库模块存储过程–实现一条记录拆分插入多列,并同时插入两表是引用上一个表自增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

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

首先在手动创建存储过程,这个heidisql工具创建存储过程的界面,传入参数,需要手动添加。存储过程建立好后。在火车器的入库模块中可以直接调用:入库模块存储过程--实现一条记录拆分插入多列,并同时插入两表是引用上一个表自增ID,以mysql实例

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

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

执行结果:

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

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

原文地址:http://faq.locoy.com/q-1269.html

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
火车头

下载设置中的自增ID和记录自增ID的区别

2024-1-22 22:26:04

火车头

v9奶盘伪原创使用教程

2024-1-22 22:26:06

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索