mysql 插入递增_如何批量插入Mysql并取得各自的递增ID

用存储过程搞定了,大家可以把下面代码粘到NAVICAT里试一下:

CREATE DEFINER=root@% PROCEDURE fTest(IN a_Terms TEXT)

BEGIN

DECLARE l_TermsLen, l_TermLen INT;

DECLARE l_Term VARCHAR(20);

-- 测试用的临时表

DROP TABLE IF EXISTS temp_terms;

CREATE TEMPORARY TABLE temp_terms (c_Term VARCHAR(20));

SET l_TermsLen = CHAR_LENGTH(a_Terms);

WHILE (l_TermsLen > 0) DO

SET l_Term = SUBSTRING_INDEX(a_Terms, ',', 1);

SET l_TermLen = CHAR_LENGTH(l_Term);

SET a_Terms = SUBSTRING(a_Terms, l_TermLen + 2);

SET l_TermsLen = l_TermsLen - (l_TermLen + 1);

-- 按需把l_Term插入到词语表,取得ID;这里插入到临时表,最后显示出来

INSERT INTO temp_terms VALUES (l_Term);

END WHILE;

-- 显示拆分出的词语

SELECT * FROM temp_terms;

END

然后新建查询,执行:

CALL fTest('abc,你们,好')

输出:

abc

你们

现在只需执行两个查询就能完成任务:

1 把文章插入到文章表,取得自动递增ID

2 把所有词用逗号连接成一个字符串,和文章ID一起作为参数,调用存储过程,由它负责解码各个词,查询它们的ID,按需插入到词语表,最后把每个词的ID和文章ID一起插入到关系表中。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值