Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

como hacer un delete si el registro a borrar existe

Estas en el tema de como hacer un delete si el registro a borrar existe en el foro de Mysql en Foros del Web. Tengo una tabla llamada caja la cual tiene los siguientes campos: id_caja, fecha_alta y saldo_total Desde java estoy ingresando los datos y al momento de ...
  #1 (permalink)  
Antiguo 13/11/2015, 13:25
 
Fecha de Ingreso: febrero-2015
Ubicación: D.F.
Mensajes: 52
Antigüedad: 9 años, 1 mes
Puntos: 0
Sonrisa como hacer un delete si el registro a borrar existe

Tengo una tabla llamada caja la cual tiene los siguientes campos:
id_caja, fecha_alta y saldo_total

Desde java estoy ingresando los datos y al momento de ingresarlos muestro un mensaje de notificación de que así se ha hecho y quiero hacer lo mismo al momento de borrar una caja existente.

Considero lógico el mostrar también un mensaje de que el registro elegido se ha borrado, pero no lo considero así, si el registro que quiero borrar es inexistente, es decir: si quiero borrar una caja con ID box-001 y esta existe, entonces se borra y se notifica mediante un mensaje, en caso contrario notificar mediante un mensaje que el registro que se quiere eliminar no existe.

He considerado el crear un par de funciones donde en una consulte (select) el registro a eliminar, y en la otra borre el registro de acuerdo al resultado obtenido en la anterior.

Para construir estas funciones y poder operarlas desde java, he seguido los siguientes ejemplos.

Lo que les comentaba, creo que pudiera funcionar, pero siento que puede haber otras alternativas como los procedimientos almacenados.

Tengo entendido que en un procedimiento almacenado se pueden colocar sentencias if/else para los query's y solo llamarla desde una sola función en java.

¿podrían orientarme con algún ejemplo de como lo podría hacer en un procedimiento almacenado?
__________________
Mientras unos tienen el poder del dinero, otros tienen la luz del conocimiento y algunos más tienen la perseverancia del ingenio.
  #2 (permalink)  
Antiguo 13/11/2015, 17:05
 
Fecha de Ingreso: febrero-2015
Ubicación: D.F.
Mensajes: 52
Antigüedad: 9 años, 1 mes
Puntos: 0
Información Respuesta: como hacer un delete si el registro a borrar existe

Investigando un poco y al prueba y error desde la consola pude realizar el siguiente procedimiento almacenado ya probado:

Código MySQL:
Ver original
  1. DELIMITER $$
  2. CREATE PROCEDURE borrar_caja(
  3. IN _id_caja VARCHAR(10),
  4. OUT _notificacion VARCHAR(50))
  5.  
  6. DECLARE _cajaExistente VARCHAR(10) DEFAULT '';
  7.  
  8. SET _cajaExistente=(SELECT id_caja FROM caja WHERE id_caja=_id_caja);
  9.  
  10. IF _cajaExistente <> '' THEN
  11.    DELETE FROM caja WHERE id_caja=_id_caja;
  12.    SET _notificacion='Se ha eliminado al caja con exito !!!';
  13.    SET _notificacion='No se puede eliminar una caja inexistente !!!'
  14. END $$
Y bueno, tal vez esto sea un poco recurrente, sobre todo la parte del SELECT y eso pero ya es un pequeño adelanto que funciona, pero si alguien tiene alguna sugerencia o consejo que pudiera compartirme para mejorarlo, sera bienvenido.
__________________
Mientras unos tienen el poder del dinero, otros tienen la luz del conocimiento y algunos más tienen la perseverancia del ingenio.

Última edición por gnzsoloyo; 16/11/2015 a las 12:00
  #3 (permalink)  
Antiguo 16/11/2015, 11:32
 
Fecha de Ingreso: noviembre-2015
Ubicación: Elche
Mensajes: 3
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: como hacer un delete si el registro a borrar existe

También puedes capturar el error en el código java mediante excepciones y crear tu propia excepción cuando se produzca ese caso.

Es solo una idea por si te interesa

Etiquetas: java, java-mysql, linux, mysql+consulta
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 11:14.