Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Eliminar y actualizar registros de una tabla mysql

  • 6 Respuestas
  • 1265 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado REMHINOB

  • *
  • Underc0der
  • Mensajes: 24
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Mayo 16, 2019, 01:52:44 pm »
buenos dias, aqui con otra consulta,
tengo una tabla despacho otra tabla det_despacho y otra tabla alm_materiales, mi pregunta es esta, como hacer si deseo eliminar un material en la tabla despacho se ellimine tambien de la tabla alm_despacho pero que las cantidades se actualicen en el stock en la tabla alm_materiales. gracias por su respuesta
« Última modificación: Mayo 16, 2019, 06:21:53 pm por Gabriela »

Desconectado DeBobiPro

  • *
  • Moderador
  • Mensajes: 293
  • Actividad:
    26.67%
  • Reputación 5
  • Como no sabía que era imposible, lo hice.
    • Ver Perfil
« Respuesta #1 en: Mayo 16, 2019, 02:03:11 pm »
Hay varias formas de hacerlo, puedes programar un "trigger" que se gatille al momento de borrar un registro, pero creo que la opción más cómoda es trabajar la lógida desde algun lengauje de programación, como por ejemplo PHP.


if (Eliminar material en la tabla despacho){
Eliminar tambien de la tabla alm_despacho
Actualizar Cantidades
}

Espero haber podido guiar tu solución.

Saludos!
Nivel 77 TERCER OJO

Desconectado Solid Water

  • *
  • Underc0der
  • Mensajes: 112
  • Actividad:
    1.67%
  • Reputación 5
  • (:{
    • Ver Perfil
« Respuesta #2 en: Mayo 16, 2019, 02:13:56 pm »
Primero obtienes las cantidades a eliminar para luego poder restarlas.
Para restarlas puedes usar el lenguaje de la aplicacion o hacerlo en el SQL dentro del update.
Con respecto al borrado puedes hacer el delete from where en ambas tablas, o lo que yo supongo es que tienes las tablas relacionados por un primary key y un foreign key. En este caso puedes usar on delete cascade.

Saludos,



Conectado animanegra

  • *
  • Colaborador
  • *
  • Mensajes: 196
  • Actividad:
    5%
  • Reputación 8
    • Ver Perfil
« Respuesta #3 en: Mayo 16, 2019, 02:19:20 pm »
Una puntualización, si al final las haces utilizando varias operaciones en lugar de un trigger directo como te están comentando y como normalmente es lo más cómodo. Deberias de poner las operaciones entre un lock tables y unlock tables. Si no, las operaciones no se harán de forma atómica y puedes tener resultados inesperados. Cuando estés solo delante del servidor no, pero en cuanto tengas varios clientes a la vez, empezarán los problemas.


Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro para que se aproveche toda la comunidad.

42

Desconectado REMHINOB

  • *
  • Underc0der
  • Mensajes: 24
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Mayo 16, 2019, 03:13:17 pm »
tengo esta linea el cual me suma a la tabla base_material  la cantidad de ingreso  no si sea posible ponerle un delete para que ya ingresado el stock al material me elimine los registros de la tabla alm_detingtock, a por cierto estoy trabajando con java netbeans y mysql

Update base_material BM set BM.stock_material= (select AI.cant_detingstock from alm_detingstock AI where AI.id_material='01010010001' and AI.id_ingstock='00000028') where id_material='01010010001'

Desconectado REMHINOB

  • *
  • Underc0der
  • Mensajes: 24
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Mayo 16, 2019, 04:20:03 pm »
Bueno ya lo logre, en dos sentencias simples, si a alguien le sirve bien saludos

String sql="Update base_material BM set BM.stock_material= (BM.stock_material - (select AI.cant_detingstock "
                        + "from alm_detingstock AI where AI.id_material='"+idmaterial+"' and AI.id_ingstock= '"+idingstock+"')) "
                        + "where id_material='"+idmaterial+"'";
                gestion=new Clases.GestionDatos();
                resp=gestion.ejecutarSentencia(sql);
                if (resp>0){
                    sql="delete t1, t2 from alm_ingstock t1 "
                    + "inner join alm_detingstock t2 where "
                    + "t1.id_ingstock=t2.id_ingstock and t1.id_ingstock='"+idingstock+"' and t2.id_material='"+idmaterial+"'";
                    gestion=new Clases.GestionDatos();
                    resp=gestion.ejecutarSentencia(sql);
                    if(resp>0){
                        javax.swing.JOptionPane.showMessageDialog(this, "Registro Eliminado");
                        this.llenarTbResumen();
                    }
                }
« Última modificación: Mayo 16, 2019, 04:35:57 pm por REMHINOB »

Desconectado DeBobiPro

  • *
  • Moderador
  • Mensajes: 293
  • Actividad:
    26.67%
  • Reputación 5
  • Como no sabía que era imposible, lo hice.
    • Ver Perfil
« Respuesta #6 en: Mayo 16, 2019, 04:21:46 pm »
Perfecto!!

Gracias por compartir tu respuesta y no olvides marcar el post somo solucionado.

Saludos!
Nivel 77 TERCER OJO

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 21525
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 8175
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 12519
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 10711
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 7825
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made