validar tiempo tablas tabla relacionadas registro mismo llave insertar foranea existe ejecutar desde datos con como antes agregar actualizar mysql insert record

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