使用mysql中的SP将多行插入多个表中

时间:2014-10-06 12:26:09

标签: mysql sql bulkinsert

如何将数据发送到存储过程,该存储过程将作为MySql中多个表中的多行插入。我知道选项load datafile和load xml。但我想将数据作为参数传递给SP(不想使用文件,因为我想避免从远程机器到服务器的文件传输)。

例如。如果我想在2个表中插入2行,如何发送所有4行的数据。

可能我可以发送2个文本参数,每个参数包含每个表的插入查询。这是最好的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以将数据作为参数发送, 假设您可以使用Text数据类型参数,并且可以使用逗号分隔发送数据。 在SP中,您可以从参数中提取数据并将其用于插入表

答案 1 :(得分:0)

DELIMITER //
DROP PROCEDURE IF EXISTS myInsert; //
CREATE PROCEDURE myInsert(IN name1 CHAR(40), IN val1 INTEGER(11), IN name2(CHAR(40), IN val2 INTEGER(11))
BEGIN
INSERT INTO test1 (name, val) VALUES (name1, val1), (name2, val2);
INSERT INTO test2 (val) VALUES (val1), (val2);
END; //