【发布时间】:2015-12-23 03:42:42
【问题描述】:
我使用MySQL 5.7.9,所以它支持内部 JSON 类型。我创建了一个“插入后”触发器来将 A 表中的相关数据插入到 B 表中,此相关数据是 A 表中的 JSON 格式数据。
我可以稍后将这些数据单独解析并插入 B 中环形。
我的问题是如何使用插入语句(如 insert into values (x,x),(y,y)...)来执行此插入事件,因为它的效率很高。
set @jsonO := CAST(NEW.targets AS JSON);
set @targetLen := JSON_LENGTH(@jsonO);
set valueStr = NULL;
set target = 0;
while target < @targetLen do
set valueStr = CONCAT_WS(',',valueStr,CONCAT('(',JSON_EXTRACT(NEW.targets,CONCAT('$[',target,']')) ,NEW.id,')'));
#insert into user_info(userid,infoid) values(JSON_EXTRACT(NEW.targets,CONCAT('$[',target,']')),NEW.id);
#!!! INSERT INTO SINGLE ROW IS OK BUT IS INEFFICIENCY
set target = target + 1;
end while;
insert into user_info(userid,infoid) values ???;
我的问题是如何使用变量一次插入多行。
【问题讨论】: