是否可以不创建PostgreSQL表中已经存在的记录?

时间:2019-04-01 13:11:53

标签: sql postgresql sql-insert

在PostgreSQL数据库中,我有一个具有以下结构的表:

| survey_id                            | employee            | status (default: false) |
|--------------------------------------|---------------------|-------------------------|
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | NNogerbek@gmail.com | true                    |
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | DJony@gmail.com     | true                    |

当我对数据库进行这样的SQL查询时,它将在表中创建新的2条记录。

INSERT INTO SURVEYS_EMPLOYEES_RELATIONSHIP (SURVEY_ID, EMPLOYEE)
SELECT '66c89a34-fff2-4cbc-a542-b1e956a352f3' SURVEY_ID, EMPLOYEE 
FROM UNNEST(ARRAY['NNogerbek@gmail.com', 'IKim@gmail.com']) EMPLOYEE

最后在表中我有4条记录:

| survey_id                            | employee            | status  |
|--------------------------------------|---------------------|---------|
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | NNogerbek@gmail.com | true    |
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | DJony@gmail.com     | true    |
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | NNogerbek@gmail.com | false   |
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | IKim@gmail.com      | false   |

是否可以不创建表中已经存在的记录?如您所见,表中已经存在雇员列中具有NNogerbek@gmail.com值的记录。同时,我想删除不在插入查询中的记录。有可能吗?

我想要的最终结果:

| survey_id                            | employee            | status  |
|--------------------------------------|---------------------|---------|
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | NNogerbek@gmail.com | true    |
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | IKim@gmail.com      | false   |

0 个答案:

没有答案