还记得在做web 开发的时候,遇到了需要在测试表中插入多条数据的情况,因为没有找到合适的方法,所以写了脚本,通过orm循环插入,效率及其底下。正好今天在回家的列车上,找到了这个方法,使用原生sql批量插入数据的方式,特此记录。
# 定义分隔符 //。m在一个ysql 的默认分隔符为 ;,这里定义 // ,为了告诉引擎在遇到下一个 // 的时候执行上面的操作
delimiter //
# 创建一个存储过程 testData
CREATE PROCEDURE testData()
BEGIN
DECLARE i INT;
set i = 1;
WHILE (i<100000) DO
INSERT INTO test_insert VALUES(i,i,i);
set i = i + 1;
END WHILE;
END // # 执行上述语句
# 恢复分隔符 ;
delimiter ;
# 调用存储过程
CALL testData();
ok,插入成功。