[MySql] IF EXISTS UPDATE ESLE INSERT - ошибка нужна помощь?!

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
Здравствуйте друзья, подскажите пожалуйста как проще реализовать в MySql - если не существует INSERT если существует UPDATE

Таблица с полями ID(автоинкремент-PRIMARY), title(UNIQUE), category_id, link_source1, link_source2

сравнение по Title , a в случе совпадения запись ичейки link_source1, если не нашлось INSERT новая запись со всеми полями.

Выдает ошибку в SQL синтаксе. подскажите где может быть ошибка или как это можно реализовать другим способом.
НИЖЕ ОПРОБОВАННЫЕ СПОСОБЫ ВЫДАЮТ ТУЖЕ ОШИБКУ.
Просто INSERT без UPDATE добавляет без ошибок.

Заранее благодарен

Код:
INSERT INTO table(title, link_source1, category_id )
VALUES(@title, @link_source1, @category_id)
ON DUPLICATE KEY UPDATE link_source1=VALUES(@link_source1);
Код:
IF (SELECT * FROM table WHERE title = @title) THEN
BEGIN
UPDATE table SET link_source1=@link_source1
END;
ELSE
BEGIN INSERT INTO table (title, link_source1, category_id)
VALUES (@title, @link_source1, @category_id);
END;
END IF;
Код:
IF EXISTS(SELECT * FROM table WHERE title = @title) THEN
UPDATE table SET link_source1=@link_source1
ELSE
INSERT INTO table (title, link_source1, category_id)
VALUES (@title, @link_source1, @category_id);
 
Последнее редактирование:

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
Нашел решение - этот код сработал без ошибки
Код:
INSERT INTO table(title, link_source1, category_id )
VALUES(@title, @link_source1, @category_id)
ON DUPLICATE KEY UPDATE link_source1=@link_source1;
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)