tiempo - Actualice el registro si existe, de lo contrario inserte en MySQL
insertar y actualizar al mismo tiempo en mysql (1)
Lo sé, esta pregunta fue hecha muchas veces y respondí también ...
Pero mi problema es más específico y no pude encontrar una solución adecuada.
Mi tabla (nombrada como páginas) es así;
id (int)
title (text)
content (text)
slug (text)
Necesito actualizar mi registro si slug (lo he convertido único ) es el mismo que se publicó.
Quiero decir que necesito actualizar / insertar mi registro basado en el registro slug .
P.ej. datos actuales:
id | title | content | slug |
--------------------------------------
1 | MainPage| some html | mainpage
si los datos publicados tienen title=ChildPage, content=html.., slug=mainpage
entonces necesito actualizar el registro anterior (títulos y registros de contenido), pero si los datos tienen title=MainPage, content=html.., slug=other_slug
then i Necesito insertar esta información como nueva con una nueva identificación.
ACTUALIZAR
El registro Slug se convirtió a clave ÚNICA.
Lo más apropiado que puedo imaginar es crear un índice único en la columna slug
ALTER TABLE pages ADD UNIQUE KEY slug;
La razón es simple: si esto no tiene restricciones únicas, puede haber más de una babosa con "página principal" ... ¿cuál debería actualizarse?
luego use la cláusula ON DUPLICATE KEY UPDATE :
INSERT INTO pages
VALUES (NULL, $title, $content, $slug) ON DUPLICATE KEY UPDATE content=$content