Здравствуйте, товарищи! Помогите пожалуйста разобраться.
В базе данных
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 |
Возможно ли не встравлять в таблицу записи, которые уже присутствуют в таблице? Как вы можете видеть в таблице уже есть идентичные записи по столбцам "survey_id", "employee". Это запись с email "NNogerbek@gmail.com". При этом нужно удалить из таблицы записи, которых не было при INSERT. Это запись с email "DJony@gmail.com" получается. В финале хочу получить такой результат:
| survey_id | employee | status |
|--------------------------------------|---------------------|---------|
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | NNogerbek@gmail.com | true |
| 66c89a34-fff2-4cbc-a542-b1e956a352f3 | IKim@gmail.com | false |
Насколько я знаю, есть
ON CONFLICT, но я не уверен применим ли он в моем случаи. Точнее для обоих условий.