火车采集器一条记录拆分插入多列—引用自增ID

- 作者:zhanhy ——来源:原创 ——

  本文原创内容,转载请注明出处。如果你在使用火车采集器时,需要使用Mysql发布数据,遇到以下的情况会很常见。将甲同学的名称插入news表,另甲同学有多个文章正文,需插入content表,并且要求两表相关联,body是一条插入一行。

  那这就要求,content表可以获得news表中甲同学的自增ID。这种复杂的插入过程,则需要存储过程了。首先看以下这两张表的设计情况如下:

  

 

  news表的设计如上图所示

  

 

  content表的设计如上图所示

  设计完之后就可以使用Navicat创建存储过程了,name使用这个如何创建存储过程呢。点击函数,在弹出的对话框中选择过程,然后继续填写如字段就好了按照下图所示即可:

  

 

  这里注意新建存储过程时,在新建字段界面没办法给字段分配空间,因此需要再编辑存储过程界面添加大小,否则保存过程时会出现1064错误,需要按照如下设置。IN `name`varchar (200) ,IN `bodys` varchar (200),这里非常重要,一定要牢记。

  之后就可以编辑存储过程,并保存了。

  BEGIN

  DECLARE po INT DEFAULT 0;

  DECLARE oid INT DEFAULT 0;

  DECLARE rid VARCHAR(200) DEFAULT "";

  DECLARE rid_tmp VARCHAR(200) DEFAULT "";

  insert into `news`(name) values(name);

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

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

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

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

  WHILE po >0 DO

  INSERT INTO `content`(nameid,body) 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 `content`(nameid,body) values(oid,rid_tmp);

  END

  保存完成之后直接测试运行,输入字段值即可。

  


如果你还有其它疑问可以来本站搜索相关问题,这里会有你想要的答案:火车脚本网

还有什么疑问可以提出来
  • 全部评论(0