Здравствуйте друзья, подскажите пожалуйста как проще реализовать в MySql - если не существует INSERT если существует UPDATE
Таблица с полями ID(автоинкремент-PRIMARY), title(UNIQUE), category_id, link_source1, link_source2
сравнение по Title , a в случе совпадения запись ичейки link_source1, если не нашлось INSERT новая запись со всеми полями.
Выдает ошибку в SQL синтаксе. подскажите где может быть ошибка или как это можно реализовать другим способом.
НИЖЕ ОПРОБОВАННЫЕ СПОСОБЫ ВЫДАЮТ ТУЖЕ ОШИБКУ.
Просто 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);
Последнее редактирование: