2015-10-12 2 views
0

Я пытаюсь вставить строку, если строка еще не существует. Я следовал на разных учебниках, и это то, что я до сих пор:SQL, где не существует, выдает ошибку в разделе «Где»

INSERT INTO UserTable (id,Email, userid) VALUES 
('"2424" + "','" + email + "','" + "4424"') 
WHERE NOT EXISTS (Select * 
        from UserTable 
        where userid='"4424" + "' AND Email='" + email + "') 

В основном пытаюсь вставить afforementioned строки, если таблица уже не содержит переменную электронную почту и идентификатор пользователя «4424». Это показывает ошибку в предложении «WHERE».

Что я делаю неправильно?

P.S: Я должен параметризуя их, но это только уточнить запрос

+0

Это зависит от ** ** фактической, конкретной системы баз данных, которую вы используете - не все SQL-продукт на основе базы данных может справиться с этой же. –

ответ

4

Это потому, что вы не можете использовать WHERE пункт с INSERT заявления. а использовать INSERT INTO ... SELECT FROM построить как

INSERT INTO UserTable (id,Email, userid) 
SELECT 2424, email, 4424 FROM tbl1 
WHERE NOT EXISTS (Select * 
        from UserTable 
        where userid='"4424" + "' AND Email='" + email + "'); 
+0

Итак, где мои значения вставки? Значение «2424»? – Dinuka

+0

@ Earthling, см. Редактирование в ответ, если это помогает. Используйте эти значения как столбцы (столбцы) в выбранном запросе. – Rahul

+0

@Rahul, ваш второй выбор - это просто неправильно. Используйте 'insert (), выберите , где не существует (...)' и все готово. – Arvo

Смежные вопросы