根据条件在角色表中插入多行

时间:2014-12-15 11:09:18

标签: postgresql

我有两个表,一个是角色,另一个是user_role。 User_role表包含特定角色的所有用户。现在,我在角色表中添加了两个额外的新角色。我想将行插入到具有role_id = 4的user_role表中,并使用新的role_ids。我无法更新exsting行,因为我想要exsting行也意味着具有role_id = 4的用户也属于新的role_ids。        我试过这种方式

INSERT INTO table2 (all_links, fields_one, fields_two) 
select URI, fields, details FROM table1 
WHERE date > "12-11-2013 00-00-00"; 

但是这里有两张桌子,但在我的情况下只有一张桌子。并且在user_role表中id是后续的,因此无法从dirctely中选择另一个表并插入。

请帮助解决这些问题。

1 个答案:

答案 0 :(得分:1)

您可以选择并将记录插入同一张表中。

如果我正确理解您的用例,

INSERT INTO user_role (role_id, <other columns>)
SELECT <new_role_id>, <other columns>
FROM 
    user_role
WHERE
    role_id = 4.

这会将user_role表中role_id为4的所有现有记录插入到具有不同role_id的同一个表中。 HTH。