Tengo una tabla que contiene todo tipo de parámetros. La estructura de la tabla es: Identificación del , object_id, param_name, param_valueMySQL en clave duplicada en un campo no único
El siguiente código funciona, pero añade los resultados en lugar de actualizarlas. El hecho es que no puedo utilizar ON DUPLICATE KEY porque mis campos son los no usuarios únicos (excepto para Identificación por supuesto)
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);
¿Se le permite crear nuevos índices? –
Sí, y ya tengo un índice en object_id – Kounisher
Si desea actualizar un registro en lugar de insertar uno nuevo, significa que es de alguna manera único, tal vez necesita una clave única en un par de columnas (object_id, param_name)? – piotrm