MySQL - Insert si no está duplicado

 
Vista:
Imágen de perfil de Mk

Insert si no está duplicado

Publicado por Mk (6 intervenciones) el 27/12/2014 13:09:37
Hola! Vuelvo de nuevo con mis dudas a esta gran comunidad que me habéis ayudado mucho a avanzar en mis proyectos. La consulta de hoy es simple pero no encuentro la manera eficiente de hacerla.

Tengo la siguiente consulta MySQL: INSERT INTO `webs` (`web_id` ,`web_addr` ,`child` ,`coincidence` , `visited`,`content`)VALUES (\"\",\"".$enlace."\", ".$id_url.", 0,0, NULL );"; (esta hecha para php). Mi pregunta es, como puedo realizar un insert si no existe ya el mismo campo "web_addr", es decir que no hayan duplicados, que sólo haga el insert si no encuentra ya dentro de la bbdd el valor que tiene en ese momento la variable "enlace", y que se haga de manera lo más eficiente que sea. Se me ha ocurrido dos cosas: hacer un select primero y despues si da vacio hacer el insert o usar el if not exist, aunque no entiendo como funciona su sintaxis. Si me podéis decir que sistema es el mejor y si es el if not exist, como seria?

Gracias de nuevo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Insert si no está duplicado

Publicado por Pablo (29 intervenciones) el 27/12/2014 18:32:45
¿Cómo introduces los datos en la DB?

Si lo haces en bloque, desde un archivo o a través de una consulta que genere varios registros puedes hacer un ON DUPLICATE KEY UPDATE al final de la consulta al atacar la base de datos.

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

Si los registros los introduces uno a uno, al estilo de lo que hacen los portales cuando te registras, haz mejor un select a la base de datos y si el resultado es nulo insertas el registro. Si usas JQuery te quedará más amigable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mk

Insert si no está duplicado

Publicado por Mk (6 intervenciones) el 27/12/2014 19:36:15
si el insert se hace uno a uno, a que te refieres con más amigable? el qué?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar