在另一个表上有条件的INSERT / UPDATE

时间:2019-02-18 12:13:35

标签: sql postgresql

我有一个用户表和一个联结表,该表说明哪个用户可以做什么。

例如,仅当我的联结表中存在执行该操作的用户时,我才想插入/更新新用户。

任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:0)

由于它与在用户表中插入数据有关,因此在联结表中不能有关于不存在的用户的数据。

对于UPDATE,可以使用SQL WHERE EXISTS语句检查联结表。例如,假设users表具有列名id(主键),并且联结表具有user_id表的外键users

UPDATE users u 
   SET col_1 = 'val_1' 
WHERE EXISTS(SELECT * FROM junction_table WHERE user_id = u.id)

答案 1 :(得分:-1)

如果存在(从Junctiontable中选择top 1 1,其中UserId = YourID) 开始     在此插入/更新语句.... 结束