Inserción controlando duplicados

La creación de un nuevo registro es muy sencilla pero, como se puede controlar el error de duplicar registros (por contener campos llave en la BD).

La FAQ Inserción controlando duplicados tiene

Pertenece a la categoría:

Pregunta
La creación de un nuevo registro es muy sencilla pero, como se puede controlar el error de duplicar registros (por contener campos llave en la BD).


Respuesta de Miguel Angel Alvarez
Antes de insertar un registro debes comprobar que no está repetido y si no lo está lo insertas como de costumbre.


Imagina que quieres insertar un nuevo usuario en una base de datos y todos los usuarios deben tener nombres de usuario distintos. Primero haces una búsqueda en la base de datos de usuarios que tengan como nombre de usuario el nuevo nombre de usuario que pretendes insertar.


Si la búsqueda arroja algún registro quiere decir que ese nombre de usuario está utilizado ya, entonces no debemos insertarlo otra vez. Si la búsqueda anterior no arrojó ningún resultado quería decir que ese nombre de usuario no está utilizado y entonces podemos insertarlo sin problemas.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 5 comentarios a la faq
1 comentario no revisado
4 comentarios revisados:
Por: Jose
22/7/2004
Pero como evitar duplicar un registro cuyo campo clave es del tipo autonumerico y la persona le da refrescar al navegador a la pagina donde se hace la incorporacion
Por: bistoco
31/1/2005
<?
// se hace un count de los registros ke tienen
// en el campo llave el dato $dato
$sql="SELECT COUNT(llave) FROM tabla WHERE llave='$dato'";
//
$fila=mysql_fetch_array(pg_query($sql,$conexion));
// se cuenta el numero de filas que dio como
// resultado la consulta y se bifurca
if($fila["count"]==0){
// insertas
}
else{
// ya existe un registro con ese id
}
?>
Por: Sergio Tamagno
05/6/2006
Primero debes tener en cuenta que campo no quieres duplicado, y ese debe ser tu campo clave. Si quieres usar una clave autoincremental, debes fijar el campo que no quieres que se repita cómo unique, y así es la base de datos quien controla que ese campo no esté duplicado
Por: Alvesor
04/1/2007
Mira lo que te recomendaria es que realizaras una consulta en tu base pero la busqueda realizala por la clave principal o tu identificador(en caso que sea autonumerico) y si existe no realices la insercion y sino existe
!ADELANTE! insert into bla bla bla

Volver al árbol de categoríasVolver al árbol de categorías

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...