MySQL по дублированию ключа в неуникальном поле

У меня есть таблица, содержащая всевозможные параметры. Структура таблицы такова: id, object_id, param_name, param_value

Следующий код работает, но он добавляет результаты вместо их обновления. Дело в том, что я не могу использовать ON DUPLICATE KEY , потому что мои поля не являются уникальными (за исключением id , конечно)

INSERT INTO `params_table` (`object_id`, `param_name`, `param_value`)
SELECT
A.id AS my_object_id,
'XYZ' AS my_param_name,
IF(TMP.abc IS NULL,0,1) AS my_param_value
FROM
ref_table AS A
LEFT JOIN tmp_table AS TMP ON TMP.abc = A.abc
ON DUPLICATE KEY
UPDATE `param_value` = IF(TMP.abc IS NULL,0,1);

5
задан rafffael 28 April 2011 в 09:49
поделиться