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

puedo crear este trigger?

Estas en el tema de puedo crear este trigger? en el foro de Mysql en Foros del Web. hola, tengo lo siguiente una tabla equipos que son agregados por el usuario una tabla materiales que son 4 materiales fijos (los campos con "#" ...
  #1 (permalink)  
Antiguo 30/01/2010, 09:59
 
Fecha de Ingreso: noviembre-2009
Ubicación: Barranquilla
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 0
puedo crear este trigger?

hola,
tengo lo siguiente


una tabla equipos que son agregados por el usuario
una tabla materiales que son 4 materiales fijos


(los campos con "#" son llaves primarias)
equipos
#codigo_equipos
nombre

materiales
#codigo_materiales
nombre

equipos_materiales
#codigo_materiales (foranea materiales)
#codigo_equipos (foranea equipos)
#fecha_recoleccion
cantidad

..
..
puedo crear un trigger que cuando cree equipos..
se me creen o llenen campos en en equipos_materiales .. ..

o lo creo procedimental..
es decir.. inserto equipos y seguido mando a insertar por medio de un for .. 4 veces en la tabla equipos material?..

espero me hallan entendido.. no duden en pedir aclaracion ..
  #2 (permalink)  
Antiguo 30/01/2010, 10:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: puedo crear este trigger?

Perdona, pero a mi entender estás complicando demasiado tratando de resolver esto.
El tema es así: Si todos los materiales de MATERIALES se combinan con cada registro de EQUIPO, podrías plantearte hacerlo en un TRIGGER o en un SP, pero si al menos un equipo no está relacionado con todos los materiales, entonces no podrás hacerlo de una forma u otra, ya que a priori no existiría forma de establecer cuáles sí y cuáles no sin enviarlos en forma específica... con lo que la mejor opción sería el INSERT múltiple.

¿Por qué no se puede hacer en ese caso con un TRIGGER?
Recordemos: Un TRIGGER es una rutina que se ejecuta automáticamente ante un evento de tabla (INSERT/UPDATE/DELETE), y sólo con los datos propios del evento. Esto significa: los campos que corresponden a la tabla. Ningún otro.
El problema es que no puedes hacer un TRIGGER para que desde la tabla EQUIPOS llene los campos de EQUIPO_MATERIALES, porque no puedes enviarle los valores de MATERIALES a la tala EQUIPOS... No le pertenecen y daría un error de sintaxis o de campos.
Sólo te quedaría hacer toda la tarea desde un STORED PROCEDURE, al que deberías invocar, como dices, N veces. Pero eso no tiene sentido, porque ello implicaría que tu ya tienes el par de valores de clave correpondientes a ambas tablas, así que ¿para qué usar un SP si puedes enviar un INSERT múltiple con mayor rapidez y eficiencia, en una sola sentencia?

¿Se comprende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/01/2010, 11:04
 
Fecha de Ingreso: noviembre-2009
Ubicación: Barranquilla
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: puedo crear este trigger?

.. perfecto..
entonces lo que hare.. es
crear el equipo.. y esos valores mandarlos a otra rutina insert en la tabla materiales_equipos 4 veces...
muchas gracias gnzsoloyo!

Etiquetas: trigger
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 06:02.