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

Duda con procedimiento almacenado

Estas en el tema de Duda con procedimiento almacenado en el foro de Mysql en Foros del Web. Hola Amigos!! mi duda es , si se puede crear un procedimiento almacenado que inserte registros de otra tabla por ejemplo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: ...
  #1 (permalink)  
Antiguo 20/12/2012, 12:41
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Duda con procedimiento almacenado

Hola Amigos!!
mi duda es , si se puede crear un procedimiento almacenado que inserte registros de otra tabla

por ejemplo
Código MySQL:
Ver original
  1. insert into tabla1(null,'nombre',25)
y que al momento de hacer el insert que el procedimiento almacenado haga esto
Código MySQL:
Ver original
  1. insert into tabla2(null,'nombre de campo nombre de tabla 1')
mi gran duda es si el insert a tabla2 se puede repetir tantas veces de acuerdo al numero que tenga el campo cantidad en tabla1 en este caso seria 25
Saludos y muchas gracias
  #2 (permalink)  
Antiguo 20/12/2012, 12:46
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Duda con procedimiento almacenado

Supongo que en la tabla1 tienes un trigger que lanza el procedimiento almacenado para hacer el insert en tabla2. En cuanto a repetir el insert puedes hacer bucles en SQL, por ejemplo con While.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 20/12/2012, 12:51
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Duda con procedimiento almacenado

Hola Malenko gracias por contestar
la verdad nunca cree un triger ni tampoco un procedimiento almacenado solamente necesitaba saber si se podia lograr eso que pregunte y empezar a leer documentacion al respecto
solamente me queda una duda mas
al crear un backup de la bd con mysql_dump , tambien guarda los procedimientos almacenas y los trigger que tengo creados en las tablas?
saludos
  #4 (permalink)  
Antiguo 20/12/2012, 12:58
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Duda con procedimiento almacenado

Yo no trabajo habitualmente con mysql pero por lógica un backup de una base de datos copia todo lo que haga relación a ella (índices, triggers, tipos de datos personalizados, procedimientos, etc.)
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 20/12/2012, 12:59
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Duda con procedimiento almacenado

perfecto Muchas gracias!!! Saludos
  #6 (permalink)  
Antiguo 20/12/2012, 14:33
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Duda con procedimiento almacenado

Hola de nuevo
ya logre crear un trigger
Código MySQL:
Ver original
  1. CREATE TRIGGER ser AFTER INSERT ON stk_ajustes
  2.    INSERT INTO seriales (s_compra_id,s_arti_id )
  3.    VALUES (NEW.ajuste_id, NEW.ajuste_arti_id );
  4.  
ahora le agregue un while pero me da un error de que intente insertar un archivo muy grande
Código MySQL:
Ver original
  1. CREATE TRIGGER ser AFTER INSERT ON stk_ajustes
  2.  
  3.  
  4. while 0 <= new.ajuste_cantidad do
  5.    INSERT INTO seriales (s_compra_id,s_arti_id )
  6.    VALUES (NEW.ajuste_id, NEW.ajuste_arti_id );
  7.  
  8. end while;
  9.  
y new.ajuste_cantidad tiene un valor de 10
alguien sabria como hacerlo?
Saludos y muchas gracias
  #7 (permalink)  
Antiguo 20/12/2012, 15:00
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Duda con procedimiento almacenado

ya esta!!!
Código MySQL:
Ver original
  1. CREATE TRIGGER ser AFTER INSERT ON stk_ajustes
  2.  
  3. WHILE n <= new.ajuste_cantidad do
  4.    INSERT INTO seriales (s_compra_id,s_arti_id )
  5.    VALUES (NEW.ajuste_id, NEW.ajuste_arti_id );
  6. SET n = n + 1;
  7. end while;
  8.  
Saludos

Etiquetas: procedimiento, registros, tabla, almacenar, campos
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 11:28.