SQL根据属性有条件多个插入



我有两个已经具有数据的表和一个空白关系表:

用户( IDU ,IDCREATOR,JOB,...)

许可( IDP ,名称)

user_permission( IDU#,IDP#,IDCREATOR,...)


对于在用户中,根据user.job value ,我想 INSERT INTO User_Permission VALUES(aPermID, idU, idCreator, ...)其中 idU is the own user's IDidCreator is the User's ID creator


示例:

  • 如果 user.job ='comm',我将 INSERT INTO User_Permission VALUES(100, User.idU, User.idCreator, ...)
  • 如果 user.job ='dev',我将INSERT INTO User_Permission VALUES(150, User.idU, User.idCreator, ...)INSERT INTO User_Permission VALUES(200, User.idU, User.idCreator, ...)

我不知道该怎么做。我正在使用Oracle,发行11G。


IDCREATOR属性的澄清

每个用户都是由另一个用户创建的 一。某人也给予了User_Permission(这就是为什么 也是idCreator)。

在这里我试图恢复旧数据,因此默认情况下我选择做 User_Permission.idCreatorUser.idCreator相同。

您需要一些映射作业的表。有点

insert into User_Permission(idU#, idP#, idCreator, ...)
select map.permID, u.idU, u.idCreator, ...
from User u
join ( -- job class to permid mapping
    select  'Comm' class, 100 permID  from dual 
    union all
    select 'Dev', 150 from dual 
    union all
    select 'Dev', 200 from dual 
) map on map.class= u.job

最新更新