tabla - MySQL ON DUPLICATE KEY UPDATE para insertar varias filas en una sola consulta
script para insertar datos en mysql (2)
Tengo una consulta SQL donde quiero insertar varias filas en una sola consulta. entonces usé algo como:
$sql = "INSERT INTO beautiful (name, age)
VALUES
(''Helen'', 24),
(''Katrina'', 21),
(''Samia'', 22),
(''Hui Ling'', 25),
(''Yumie'', 29)";
mysql_query( $sql, $conn );
El problema es que cuando ejecuto esta consulta, quiero verificar si una clave ÚNICA (que no es la PRIMARIA), por ej. ''nombre'' en el caso anterior, debe verificarse y si ese ''nombre'' ya existe, la fila completa correspondiente debe actualizarse de lo contrario insertada.
Por ejemplo, en el ejemplo siguiente, si ''Katrina'' ya está presente en la base de datos, toda la fila, independientemente del número de campos, debe actualizarse. De nuevo, si ''Samia'' no está presente, la fila debe insertarse.
Pensé en usar:
INSERT INTO beautiful (name, age)
VALUES
(''Helen'', 24),
(''Katrina'', 21),
(''Samia'', 22),
(''Hui Ling'', 25),
(''Yumie'', 29) ON DUPLICATE KEY UPDATE
Aquí está la trampa. Me quedé atascado y confundí cómo proceder. Tengo varias filas para insertar / actualizar a la vez. Por favor dame la dirección. Gracias.
Puede usar Replace lugar de INSERT ... ON DUPLICATE KEY UPDATE.
Use VALUES
palabra clave para referirse a nuevos valores (consulte la documentation ).
INSERT INTO beautiful (name, age)
VALUES
(''Helen'', 24),
(''Katrina'', 21),
(''Samia'', 22),
(''Hui Ling'', 25),
(''Yumie'', 29)
ON DUPLICATE KEY UPDATE
age = VALUES(age),
...