-1

我在mysql中有一个这样的存储过程:

SET @q1= CONCAT('INSERT INTO tblPermissionRole (IdRole , IdPermission) VALUES (p_IdRole', p_Permission, ')');
PREPARE stmt FROM @q1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

我想用一个 idRole 插入几个 idPermission,但是使用准备好的语句我不知道这怎么可能。请帮我。tnx。

4

2 回答 2

1

您需要为这两个值添加参数占位符

SET @q1= 'INSERT INTO tblPermissionRole (IdRole , IdPermission) VALUES (?, ?)';
PREPARE stmt FROM @q1;

set @id := 1;
<some kind of iteration that sets @perm>
  EXECUTE stmt USING @id, @perm;
</some kind ... >

DEALLOCATE PREPARE stmt;
于 2012-12-23T08:25:05.940 回答
0

您可以使用insert into..select语句。这篇文章可能会对你有所帮助。这个想法是,您将创建一个函数来拆分逗号分隔的参数值并返回一个表。您将在插入语句中的表。

于 2012-12-23T08:22:59.787 回答