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

  • Post author:
  • Post category:mysql


用存储过程搞定了,大家可以把下面代码粘到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一起插入到关系表中。



版权声明:本文为weixin_32407355原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。