[SOLUCIONADO] Eliminar y actualizar registros de una tabla mysql

Iniciado por REMHINOB, Mayo 16, 2019, 01:52:44 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 16, 2019, 01:52:44 PM Ultima modificación: Mayo 16, 2019, 06:21:53 PM por Gabriela
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

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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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,

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.

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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_material='01010010001' and No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_ingstock='00000028') where id_material='01010010001'

Mayo 16, 2019, 04:20:03 PM #5 Ultima modificación: Mayo 16, 2019, 04:35:57 PM por REMHINOB
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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_material='"+idmaterial+"' and No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_ingstock='"+idingstock+"' and No tienes permitido ver los links. Registrarse o Entrar a mi cuenta_material='"+idmaterial+"'";
                    gestion=new Clases.GestionDatos();
                    resp=gestion.ejecutarSentencia(sql);
                    if(resp>0){
                        javax.swing.JOptionPane.showMessageDialog(this, "Registro Eliminado");
                        this.llenarTbResumen();
                    }
                }

Perfecto!!

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

Saludos!
Nivel 77 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta