繁体   English   中英

从选择结果中插入多行

[英]Insert multiple rows from select result

对于数据库修复,我必须执行此查询导致的每个ID插入操作;

SELECT Id FROM role WHERE id != 99 AND Id NOT IN (SELECT RoleId FROM permissionaction WHERE PermissionId = 19);

因此,它会导致某些ID随此查询添加。

  INSERT INTO permissionaction (AccessLevel, PermissionId, ControllerActionId, Active, CreatedOn, ModifiedOn, CreatedById, ModifiedById, RoleId) VALUES (1, 19, 1, 1, Now(), Now(), 1, 1, *******ID HERE******);

我知道可以通过使用mysql游标来完成,但这在这里是不可能的。 有没有一种方法可以在一个查询中添加所有结果ID?

谢谢

使用INSERT...SELECT

INSERT INTO permissionaction (AccessLevel, PermissionId, ControllerActionId, Active, CreatedOn, ModifiedOn, CreatedById, ModifiedById, RoleId)
SELECT 1, 19, 1, 1, Now(), Now(), 1, 1, Id
FROM role
WHERE id != 99
AND Id NOT IN (SELECT RoleId FROM permissionaction WHERE PermissionId = 19);

使用INSERT...SELECT ,可以为SELECT查询的每个返回行将值添加到表permissionaction中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM