我有两个表已经有数据和一个无效关系表:
用户( idU ,idCreator,作业......)
许可( idP ,名称)
User_Permission( idU#,idP#,idCreator,...)
对于用户中的每一行,根据User.job值 ,我希望INSERT INTO User_Permission VALUES(aPermID, idU, idCreator, ...)
idU is the own user's ID
和{{1} }。
示例:
idCreator is the User's ID creator
。INSERT INTO User_Permission VALUES(100, User.idU, User.idCreator, ...)
和INSERT INTO User_Permission VALUES(150, User.idU, User.idCreator, ...)
我不知道如何做到这一点。我正在使用Oracle,发布11g。
澄清idCreator属性
每个用户都是由另一个用户创建的 一。一个
INSERT INTO User_Permission VALUES(200, User.idU, User.idCreator, ...)
也由某人给出(这就是为什么 也是User_Permission
。这里我试图恢复旧数据,所以默认情况下我选择制作
idCreator
与User_Permission.idCreator
相同。
答案 0 :(得分:2)
您需要一些将作业映射到Permid的表格。
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