MySQL加载数据插入,将值拆分为多行

问题描述 投票:0回答:1

使用加载数据本地内文件

num 列 存储每 6 位数字

如何参数化加载命令以迭代数组?

Mysql版本8.0.23

在文件文本中

id长度1, 碳纳米管长度2, 数字长度 500

1 3AB1001AB1002AB1003

表A

id cnt 数字
1 3 AB1001AB1002AB1003

我想要像这样的表的输出

表B

id cnt 数字
1 3 AB1001
1 3 AB1002
1 3 AB1003
mysql arrays json load-data-infile json-table
1个回答
0
投票

您可以使用触发器将表“a”中的一行拆分为“b”的 3 行。 触发如下:

`CREATE TRIGGER triger1 AFTER INSERT ON a FOR EACH ROW BEGIN
SET @i = 0;
REPEAT
SET @part = SUBSTRING(NEW.num, 1 + @i*6, 6);
INSERT INTO b VALUE(NEW.id, NEW.cnt, @part);
SET @i = @i + 1;
UNTIL @i = NEW.cnt
END REPEAT;
END;`

在使用 LOAD DATA LOCAL INFILE 插入数据之前,必须在表“a”上创建触发器。 问候。

© www.soinside.com 2019 - 2024. All rights reserved.