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

Procediminetos almacenados en Mysql.

Estas en el tema de Procediminetos almacenados en Mysql. en el foro de Mysql en Foros del Web. Buenas tardes saludos cordiales, Amigos foristas nunca he realizado un procedimiento almacenado en MYSQL y lo puedo solucionar con php pero quizas tarde mucho para ...
  #1 (permalink)  
Antiguo 18/11/2016, 12:55
 
Fecha de Ingreso: junio-2008
Mensajes: 74
Antigüedad: 15 años, 10 meses
Puntos: 2
Procediminetos almacenados en Mysql.

Buenas tardes saludos cordiales,

Amigos foristas nunca he realizado un procedimiento almacenado en MYSQL y lo puedo solucionar con php pero quizas tarde mucho para lo que quiero hacer.

ejemplo tengo una consulta SELECT que me retorna unos valores calculados ejemplo N_ORDEN ese valor debe ser insertado atraves de un UPDATE en una tabla especifica TABLA2 pero no se como hacer el select o el while para que inserte ese valor de retorno en la TABLA2. son muchos registros la consulta puede generar mas 3mil registros. seria algo asi PARA QUE TENGAN UNA IDEA. OJO SOY NUEVO EN ESTO NUCA HE REALIZADO TAN PROCEDIMIENTO Y TAMPOCO SE SI SE PUEDE HACER DESDE PHPMYADMIN.

SELECT N_RDNEN, ID FROM TABLA1
WHILE
UPDATE TABLA2 SET ORD=N_ORDEN WHERE IDORD=ID
END WHILE


MUCHAS GRACIAS ESPERO ME PUEDAN AYUDAR
  #2 (permalink)  
Antiguo 18/11/2016, 13:29
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Procediminetos almacenados en Mysql.

Hola rafaelg21:

Alguna vez leí en otro foro que hay muchas formas de matar una mosca, pero utilizar una pistola puede resultar demasiado. En tu caso pasa lo mismo. En realidad no tienes necesidad de utilizar Procedimientos almacenados ni mucho menos Ciclos dentro de estos para hacer lo que necesitas. Dado que tu actualización depende del resultado de una consulta, en realidad puedes tratar de hacer un UPDATE utilizando múltiples tablas a manera de JOIN. Checa esta cita del manual de referencia del UPDATE:

Cita:
You can also perform UPDATE operations covering multiple tables. However, you cannot use ORDER BY or LIMIT with a multiple-table UPDATE. The table_references clause lists the tables involved in the join. Its syntax is described in Section 13.2.9.2, “JOIN Syntax”. Here is an example:

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
con esta consulta lo que haces es copiar el precio de la tabla MONTH a la tabla ITEMS para aquellos id's que sean iguales. Creo que esto es más o menos lo mismo que quieres hacer. Haz la prueba y nos comentas.

Si tienes problemas, postea algunos datos de ejemplo de tus tablas y dinos qué es lo que intentaste hacer y con gusto te ayudamos a corregir y/o completar lo que haga falta.

Saludos
Leo.
  #3 (permalink)  
Antiguo 19/11/2016, 19:30
 
Fecha de Ingreso: junio-2008
Mensajes: 74
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Procediminetos almacenados en Mysql.

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola rafaelg21:

Alguna vez leí en otro foro que hay muchas formas de matar una mosca, pero utilizar una pistola puede resultar demasiado. En tu caso pasa lo mismo. En realidad no tienes necesidad de utilizar Procedimientos almacenados ni mucho menos Ciclos dentro de estos para hacer lo que necesitas. Dado que tu actualización depende del resultado de una consulta, en realidad puedes tratar de hacer un UPDATE utilizando múltiples tablas a manera de JOIN. Checa esta cita del manual de referencia del UPDATE:



con esta consulta lo que haces es copiar el precio de la tabla MONTH a la tabla ITEMS para aquellos id's que sean iguales. Creo que esto es más o menos lo mismo que quieres hacer. Haz la prueba y nos comentas.

Si tienes problemas, postea algunos datos de ejemplo de tus tablas y dinos qué es lo que intentaste hacer y con gusto te ayudamos a corregir y/o completar lo que haga falta.

Saludos
Leo.
Muchas gracias por su repuesta sr leonardo_josue y es tambien de utilidad, pero en mi caso quizas no fui muy explicativo en el porque de un procedimientos almacenado, yo debo editar un campo ORD en TABLA2 pero para poder ordenar debo hacer un consulta de una tabla que me va a retornar un valor calculado en ese SELECT lo que quiere decir que la consulta debe cumplir una serie de condiciones en el WHERE y asi como retorna el ID, el N_RDNEN es un valor calculado que no esta en ninguna columna de la TABLA1 tratare de restructurar el ejemplo:

SELECT T.voto/T.comments as N_RDNEN, T.ID FROM TABLA1 as T, TABLA3 as T3 WHERE T.idt = T.idt AND ....

WHILE
UPDATE TABLA2 SET ORD=N_ORDEN WHERE IDORD=ID
END WHILE

Una vez mas muchissimas gracias leonardo y ojala me puedas colaborar en ese procedimiento para ver si aprendo algo nuevo para mi y me pueda hacer funcional para lo que realmente necesito.

Etiquetas: php, registro, select, sql, tabla
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 20:05.