Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] evitar repetir registros con netbeans y mysql

Estas en el tema de evitar repetir registros con netbeans y mysql en el foro de Java en Foros del Web. bueno les cuento mi problema, lo que pasa es que me gustaría saber de que manera puedo evitar duplicar registros en una base de datos ...
  #1 (permalink)  
Antiguo 16/07/2013, 16:53
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta evitar repetir registros con netbeans y mysql

bueno les cuento mi problema, lo que pasa es que me gustaría saber de que manera puedo evitar duplicar registros en una base de datos echa en mysql.

he buscado en todas partes y en todo viene tutoriales para php pero yo lo necesito para java, es para una aplicación de escritorio.

por ejemplo tengo que poner en un registro los siguientes datos:

numero de orden, ip, descripción, fecha.

en donde la ip es un numero único, no se debe de tener 2 ips para un mismo registro, se pueden tener números de orden, descripciones repetidas, pero no ips.

en fin, solo me gustaría saber como se le hace para no ingresar 2 registros iguales, tengo entendido como se hace en ms sql server, pero al querer intentarlo en mysql no sale.

si alguien pudiera ayudarme, solo se que se puede hacer con un procedimiento almacenado pero no se como condicionar para que primero revise la consulta y si no existe la ip entonces insertarlo. muchas gracias por su atención.
  #2 (permalink)  
Antiguo 16/07/2013, 17:56
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: evitar repetir registros con netbeans y mysql

Ese tipo de control lo tienes que implementar en la base de datos, indicando que el campo IP es único al crear la tabla. De esta forma al intentar ingresar un registro duplicado el motor de base de datos devolvería un mensaje de error al driver que estés usando para concetar desde Java, lo que generaría una Exception, que puedes controlar con un bloque TRY - CATCH para ejecutar la acción que desees.

Si ya creaste la base de datos sin el índice único, puedes agregarlo así (puede que no recuerde bien la sintaxis):

Código:
ALTER TABLE ´tabla´
ADD CONSTRAINT UNIQUE 'nombre_indice' (´campo_ip´)
Si la sintaxis no está bien, la puedes buscar en google. Saludos.
  #3 (permalink)  
Antiguo 16/07/2013, 18:49
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: evitar repetir registros con netbeans y mysql

ya intente con unique, pero igual guarda los campos de manera repetida :SS
  #4 (permalink)  
Antiguo 16/07/2013, 19:00
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: evitar repetir registros con netbeans y mysql

Cita:
Iniciado por qvixote Ver Mensaje
Ese tipo de control lo tienes que implementar en la base de datos, indicando que el campo IP es único al crear la tabla. De esta forma al intentar ingresar un registro duplicado el motor de base de datos devolvería un mensaje de error al driver que estés usando para concetar desde Java, lo que generaría una Exception, que puedes controlar con un bloque TRY - CATCH para ejecutar la acción que desees.

Si ya creaste la base de datos sin el índice único, puedes agregarlo así (puede que no recuerde bien la sintaxis):

Código:
ALTER TABLE ´tabla´
ADD CONSTRAINT UNIQUE 'nombre_indice' (´campo_ip´)
Si la sintaxis no está bien, la puedes buscar en google. Saludos.

Muchas gracias por tu ayuda, a pesar de que ya había intentado esto lo volví a intentar y ahora si me salio, no se a que se deba pero lo bueno que ya funciono, muchas gracias

el codigo quedo asi;

ALTER TABLE `registros`
ADD CONSTRAINT UNIQUE basta (`ip`)

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:35.