Я вставляю данные в таблицу, выбирая из другой таблицы, которая может иметь дубликаты.Я думал, что мой запрос обрабатывает это, проверяя, существует ли строка, но я получаю уникальное нарушение ограничения.
Вот запрос:
INSERT INTO FOLDER_USER (FOLDER_ID, USER_ID)
SELECT DECODE(FOLDERID,'F10', '1','F565','2','F11', '3','F81', '4','0'), USERID
FROM DATA1.FOLDERS F1
WHERE UPPER(OWNER) = 'ADMIN'
AND NOT EXISTS
(SELECT 1 FROM FOLDER_USER F2
WHERE DECODE(FOLDERID,'F10', '1','F565','2','F11', '3','F81', '4','0')= F2.FOLDER_ID
AND F1.USERID = F2.USER_ID);
- Таблица FOLDER_USER содержит 2столбцы FOLDER_ID (число), USER_ID (varchar) и вместе они составляют первичный ключ
- Таблица FOLDERS содержит 2 столбца FOLDERID и USERID (оба varchars).Значение в FOLDERID необходимо декодировать в число в зависимости от его значения перед вставкой в новую таблицу