Ошибка получения: «Не удалось импортировать SQL; сообщение = sqlite3_prepare_v2 ошибка: рядом с« IF »: синтаксическая ошибка» в SQL Инструкция - PullRequest
2 голосов
/ 05 апреля 2020

У меня длинный SQL файл для настройки БД для приложения. Я создаю несколько таблиц:

CREATE TABLE
IF NOT EXISTS emotions
(date TEXT, emotions TEXT);

CREATE TABLE
IF NOT EXISTS dates
(date TEXT, textMorning TEXT, textAfternoon TEXT, textEvening TEXT);

CREATE TABLE
IF NOT EXISTS comboEmotions
(emotion TEXT, comboEmotion1 TEXT, comboEmotionColour1 TEXT, etc...)

Затем я пытаюсь добавить таблицу «comboEmotions» и заполнить ее данными, используя несколько операторов следующего формата:

IF NOT EXISTS (SELECT * FROM comboEmotions WHERE emotion='joy')
BEGIN
INSERT INTO comboEmotions ('joy', 'none', 'none', 'love', '#C8D23F' ,'guilt', '#93BE4F', 'delight', '#98BD86', 'none', 'none', 'morbidness', '#CAA881', 'pride', '#E5824F', 'optimism', '#F2BA47');
END


IF NOT EXISTS (SELECT * FROM comboEmotions WHERE emotion='trust')
BEGIN
INSERT INTO comboEmotions ('trust', 'love', '#C8D23E', 'none', 'none', 'submission', '#65B744' ,'curiosity', '#6DB77A', 'sentimental', '#86B37C', 'none', 'none', 'dominance', '#B97E45', 'hope', '#C5B135');
END

Строка, в которой она отображается для разбиения на это утверждение:

IF NOT EXISTS (SELECT * FROM comboEmotions WHERE emotion='joy')
BEGIN

Неправильно ли отформатировано это утверждение?

1 Ответ

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

Использовать INSERT... SELECT синтаксис:

INSERT INTO comboEmotions(emotion, comboEmotion1, comboEmotionColour1, ....) 
SELECT 'joy', 'none', 'none', ...
WHERE NOT EXISTS (SELECT * FROM comboEmotions WHERE emotion='joy');

См. Демоверсию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...