Sv Community El Salvador

Soporte y Tecnología => Programación => Base de Datos => Mensaje iniciado por: KronZ en junio 22, 2014, 11:38:06 am

Título: Problema Procedure Mysql
Publicado por: KronZ en junio 22, 2014, 11:38:06 am
Buenas compañeros, ¿Alguien me podría resolver este problemilla?

Tengo esta tabla:

Fotógrafo (dni, nombre, sueldo, teléfono)
Cámara (nserie, marca, modelo, precio, fecha_compra)
Fotografía (dni_fotógrafo, número, ancho, alto, resolución, tema, fecha)
Utiliza (dni_fotógrafo, nserie_cámara, fecha, incidencia)
SesiónFotos (fecha, dni_fotógrafo, lugar, importe)



Y necesito lo siguiente :

Mediante un procedimiento almacenado permitir renumerar todas las fotografías de un
fotógrafo de forma consecutiva (1, 2, 3 ...) Para ordenar las fotografías se tomará como criterio la
fecha. El número de la primera fotografía se pasará como parámetro (primerNum) al
procedimiento almacenado. En este caso se numerará primerNum, primerNum+1,
primerNum+2, ...

Por ahora solo pude sacar esto, pero no se si voy bien encaminado, soy un desaste en esto:

Código: [Seleccionar]
DELIMITER $$
DROP PROCEDURE IF EXIST ordenar $$
CREATE PROCEDURE ordenar (in pdni INT (9), prueba INT)

BEGIN
SELECT * FROM Fotografia ORDER BY fecha;

SELECT nombre FROM Fotografo where dni = pdni;



END;
$$
DELIMITER;



PD: Muchísimas gracias por adelantado.

Título: Re:Problema Procedure Mysql
Publicado por: g00mba en junio 22, 2014, 07:20:55 pm
antes de hacer el SP hace el query que hace lo que queres. despues ponelo como SP.
tambien lee un poco sobre la funcion propiedad de columna autoincrement
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html (http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)
Título: Re:Problema Procedure Mysql
Publicado por: tekun en junio 23, 2014, 10:43:49 am
Mediante un procedimiento almacenado permitir renumerar todas las fotografías de un
fotógrafo de forma consecutiva (1, 2, 3 ...) Para ordenar las fotografías se tomará como criterio la
fecha. El número de la primera fotografía se pasará como parámetro (primerNum) al
procedimiento almacenado. En este caso se numerará primerNum, primerNum+1,
primerNum+2, ...

Código: [Seleccionar]
DELIMITER $$
DROP PROCEDURE IF EXIST ordenar $$
CREATE PROCEDURE ordenar (in pdni INT (9), prueba INT)

BEGIN
SELECT * FROM Fotografia ORDER BY fecha;

SELECT nombre FROM Fotografo where dni = pdni;

END;
$$
DELIMITER;

:thumbsup: que bien ya tenés tu primer SP  :yao_ming: esta muy ordenado y limpio...


así como los dedos de la mano, tenés varias formas de lograr lo que quieres...

para empezar puedes hacerlo acá:

antes de hacer el SP hace el query que hace lo que queres. despues ponelo como SP.
tambien lee un poco sobre la funcion propiedad de columna autoincrement
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html (http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)