Есть ли способ вставить несколько строк в таблицу SQL, если пройдена проверка WHERE EXISTS? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь вставить несколько строк в таблицу, если в этой таблице нет строк, соответствующих проверке WHERE EXISTS.

Ниже приведен мой код:

INSERT INTO words (associatedEmotion, word, severity)
SELECT  newWords.associatedEmotion
FROM    ( VALUES ('joy', 'ecstatic', '3' ), ('joy', 'happy', '2') ) AS newWords (associatedEmotion, word, severity)
WHERE   NOT EXISTS ( SELECT 1
                     FROM   words AS MT
                     WHERE  MT.associatedEmotion = newWords.associatedEmotion );

Это должно проверить таблицу «слов» и посмотреть, есть ли какие-либо подходящие результаты для набора «relatedEmotion». Однако я получаю сообщение об ошибке

Failed to import SQL; message=sqlite3_prepare_v2 failure: near "(": syntax error

Это означает, что мой синтаксис неверен, но я не уверен, почему.

1 Ответ

1 голос
/ 29 апреля 2020

Используйте CTE так:

INSERT INTO words (associatedEmotion, word, severity)
WITH newWords(associatedEmotion, word, severity) AS (VALUES ('joy', 'ecstatic', '3' ), ('joy', 'happy', '2'))
SELECT *
FROM  newWords
WHERE  NOT EXISTS ( SELECT 1
                     FROM   words AS MT
                     WHERE  MT.associatedEmotion = newWords.associatedEmotion );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...