MySQL - AYUDA CON TRIGGER BEFORE UPDATE

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 12 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

AYUDA CON TRIGGER BEFORE UPDATE

Publicado por JOSE LOPEZ (2 intervenciones) el 27/03/2018 19:32:36
Cordial saludo,
Poseo una Tabla llamada IDTPPD con un campo ID de dos caracteres, este posee registros desde '01' hasta '99',
otra tabla llamada TPPDTO con dos campos IDTP de dos caracteres y CONCEP de varchar de 25.

La idea es que cuando se ingrese un nuevo registro en la tabla TPPDTO el valor del campo IDTP sea tomado de la tabla IDTPPD en un trigger BEFORE INSERT hasta ahí me funciona, lo que no se es hacer el trigger para que en cuando el usuario realice el POST del nuevo registro se elimine en la tabla IDTPPD el valor que se ingreso en TPPDTO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

AYUDA CON TRIGGER BEFORE UPDATE

Publicado por Leonardo Josué (414 intervenciones) el 27/03/2018 21:17:08
Hola José:

Postea tu código para poder ver en dónde está el error. También sería de mucha utilidad si pones el script de creación de tus tablas y nos pones algunos datos de ejemplo, para poder hacer pruebas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 12 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

AYUDA CON TRIGGER BEFORE UPDATE

Publicado por JOSE LOPEZ (2 intervenciones) el 27/03/2018 22:13:36
Hola, gracias por responder.

Aqui esta la creacion de las tablas:

Tabla que contiene el consecutivo de dos caracteres:
1
2
CREATE TABLE `IDTPPD` ( `ID` char(2) COLLATE utf8_spanish_ci NOT NULL,
                        PRIMARY KEY (`ID`) )

Tabla a la que se le inserta el ID de la tabla anterior cuando se realiza un nuevo resgistro:
1
2
3
CREATE TABLE `TPPDTO` ( `IDTP` char(2) COLLATE utf8_spanish_ci NOT NULL,
                        `CONCEPT` varchar(25) COLLATE utf8_spanish_ci NOT NULL,
                         PRIMARY KEY (`IDTP`) )

Este es el trigger que se dispara cuando se realiza un nuevo registro:
1
2
3
4
5
6
CREATE TRIGGER `BI_TPPDTO` BEFORE INSERT ON `TPPDTO`
FOR EACH ROW
  IF NEW.IDTP IS NULL THEN
    set NEW.IDTP = (SELECT IDTPPD.ID FROM IDTPPD order by ID limit 1);
  END IF
END

Como comente anteriormente hasta aquí todo esta bien, lo que deseo es que al momento de guardar la información de un nuevo registro se realice un trigger que borre el ID en la tabla IDTPPD que fue utilizado en el campo IDTP de la tabla TPPDTO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

AYUDA CON TRIGGER BEFORE UPDATE

Publicado por Leonardo Josué (414 intervenciones) el 28/03/2018 00:49:31
Hola de nuevo:

Lo que haces es HACER DIRECTAMENTE el DELETE antes de terminar el TRIGGER, es decir, intenta hacer esto:

1
2
3
4
5
6
7
CREATE TRIGGER `BI_TPPDTO` BEFORE INSERT ON `TPPDTO`
FOR EACH ROW
  IF NEW.IDTP IS NULL THEN
    set NEW.IDTP = (SELECT IDTPPD.ID FROM IDTPPD order by ID limit 1);
  END IF
  DELETE FROM IDTPPD WHERE IDTPPD.ID = NEW.IDTP;
END

Esto debería de funcionar, haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar