我有两个已经具有数据的表和一个空白关系表:
用户( 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 ID
和 idCreator 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.idCreator
与User.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