MySQL - Es correcto el siguiente Trigger ...?

 
Vista:
Imágen de perfil de Pedro
Val: 20
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es correcto el siguiente Trigger ...?

Publicado por Pedro (7 intervenciones) el 30/12/2019 21:03:51
Muy buenos días || Tardes || Noches dependiendo de sus ubicaciones
Es correcto este trigger : Lo que quiero hacer es que cuando se produzca el cambio de año me coloque el id que es auto_increment a 1.
Lo quiero hacer así porque es una tabla de pedidos y se van a crear muchos pedidos con lo cual el id que es primary key puede llegar a tener una longitud bien grande.

A continuación el Trigger:

1
2
3
4
5
6
7
CREATE TRIGGER cambiarid
BEFORE INSERT  ON  NOMBRE_TABLA
FOR EACH
IF (NEW.FECHA > OLD.FECHA) THEN
    SET NEW.ID=1;
END IF;
END

Gracias por sus colaboraciones.
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
Imágen de perfil de joel
Val: 650
Plata
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es correcto el siguiente Trigger ...?

Publicado por joel (231 intervenciones) el 31/12/2019 10:41:37
Hola Pedro, si es una clave primaria, creo que no podrán repetirse...

Una manera de hacer esto que comentas, es utilizar una clave primaria de dos campos... para tu caso, creo que seria año y id... de esta manera, cada año puedes tener un id 1.

Espero que te sirva.
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
Imágen de perfil de Pedro
Val: 20
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es correcto el siguiente Trigger ...?

Publicado por Pedro (7 intervenciones) el 02/01/2020 19:45:44
Exacto...! @joel

La primary está formada por dos campos id y año. La idea es que al ser el id_pedido auto incremental si se generan > 1.000.000 el id empezaría a tener gran cantidad de números,entonces la idea es que en el cambio de año el id_pedido vuelva a 1.

Ejemplo:
Id_pedido fecha <--------Esto conforma la clave primaria de mi tabla pedidos.
1000100 2019
1 2020 <--------Esto es lo que quiero que ocurra con el Trigger.

Creo que el trigger trabajará de forma adecuada.


Gracias por tu colaboración Joel.
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
Imágen de perfil de joel
Val: 650
Plata
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es correcto el siguiente Trigger ...?

Publicado por joel (231 intervenciones) el 02/01/2020 20:55:38
La verdad, es que tal y como lo tienes no lo he probado nunca, pero puedes probar:

1
ALTER TABLE tablename AUTO_INCREMENT = 1

Coméntanos, ok?
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
Imágen de perfil de Pedro
Val: 20
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Es correcto el siguiente Trigger ...?

Publicado por Pedro (7 intervenciones) el 02/01/2020 21:07:49
Hola @Joel eso lo hago manualmente y funciona , el uso de trigger es para dejar como una especie de vigilante en base a unos acontecimientos en concreto.

El acontecimiento es controlar los insert de una tabla y una vez compruebe el año realizar una acción en concreto eso es un trigger.


Gracias por tu tiempo
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