DeNunCianDo

DeNunCianDo (https://www.denunciando.com/)
-   Programacion (https://www.denunciando.com/programacion-115/)
-   -   Ayuda Urgente (https://www.denunciando.com/programacion-115/420640-ayuda-urgente.html)

tolima0611 26-03-2011 12:59:53

Ayuda Urgente
 
este codigo de postgres que utilize y me funciono me sirve para Mysql o hay que cambiarle algo ya hice la tabla y la base me faltan las funciones no las quiere recibir no lo estoy haciendo en el gui tools lo estoy haciendo por consola.

tolima0611 26-03-2011 13:04:43

Respuesta: Ayuda Urgente
 
DROP TABLE Person;
CREATE TABLE Person
(
per_ID INTEGER,
per_FName VARCHAR(35) NOT NULL,
per_LName VARCHAR(40) NOT NULL,
per_Age INTEGER NOT NULL,
per_Salary INTEGER NOT NULL,
per_Dependency VARCHAR(40) NOT NULL,
per_Charge VARCHAR(30) NOT NULL,
per_CityofBirth VARCHAR(50) NOT NULL,
per_FounderOf VARCHAR(30) NOT NULL,
PRIMARY KEY(per_ID));
CREATE OR REPLACE FUNCTION GetPerson
(
Person.per_id%TYPE
)
RETURNS SETOF Person AS
$$
BEGIN
RETURN QUERY
SELECT ALL *
FROM Person
WHERE (per_Id=$1);
END;
$$LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION GetFirstPerson
(
)
RETURNS SETOF Person AS
$$
BEGIN
RETURN QUERY
SELECT ALL *
FROM Person
ORDER BY per_Id ASC
LIMIT 1;
END;
$$LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION GetLastPerson
(
)
RETURNS SETOF Person AS
$$
BEGIN
RETURN QUERY
SELECT ALL *
FROM Person
ORDER BY per_Id DESC
LIMIT 1;
END;
$$LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION GetPreviousPerson
(
Person.per_ID%TYPE
)
RETURNS SETOF Person AS
$$
BEGIN
RETURN QUERY
SELECT ALL *
FROM Person
WHERE (per_ID<$1)
ORDER BY per_ID DESC
LIMIT 1;
END;
$$LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION GetNextPerson
(
Person.per_ID%TYPE
)
RETURNS SETOF Person AS
$$
BEGIN
RETURN QUERY
SELECT ALL *
FROM Person
WHERE (per_ID>$1)
ORDER BY per_ID ASC
LIMIT 1;
END;
$$LANGUAGE plpgsql;
CREATE OR REPLACE function addPerson
(
Person.per_id%TYPE,
Person.per_fname%TYPE,
Person.per_lname%TYPE,
Person.per_age%TYPE,
Person.per_salary%TYPE,
Person.per_dependency%TYPE,
Person.per_charge%TYPE,
Person.per_cityofbirth%TYPE,
Person.per_founderof%TYPE
)
RETURNS VOID AS
$$
BEGIN
INSERT INTO Person VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9);
END;
$$LANGUAGE plpgsql;
CREATE OR REPLACE function UpdatePerson
(
Person.per_id%TYPE,
Person.per_fname%TYPE,
Person.per_lname%TYPE,
Person.per_age%TYPE,
Person.per_salary%TYPE,
Person.per_dependency%TYPE,
Person.per_charge%TYPE,
Person.per_cityofbirth%TYPE,
Person.per_founderof%TYPE
)
RETURNS VOID AS
$$
BEGIN
UPDATE Person set per_fname=$2,per_lname=$3,per_age=$4,per_salary=$5,per_depen dency=$6,per_charge=$7,per_cityofbirth=$8,per_founderof=$9
WHERE per_id=$1;
END;
$$LANGUAGE plpgsql;
CREATE OR REPLACE function DeletePerson
(
Person.per_id%TYPE
)
RETURNS VOID AS
$$
BEGIN
DELETE FROM Person
WHERE (per_id=$1);
END;
$$LANGUAGE plpgsql;

INSERT INTO Person VALUES(1,'Stephen','Wozniac',40,400000,'Generacion','Tecnico ','San Jose','Apple Inc');
INSERT INTO Person VALUES(5978744,'Efren','Suarez Peralta',37,1200000,'Operacion','Auxiliar Tecnico','Riosucio','Chec S.A');
INSERT INTO Person VALUES(33991804,'Luz Omaira','Izquierdo Ossa',37,950000,'Gerencia','Secretaria','Manizales','Comcel' );

jiorini 08-05-2011 22:23:40

Respuesta: Ayuda Urgente
 
La realidad es que desde postgres a mysql hay una distancia larga, la definicion de funciones o procedimientos son distintos en uno y en otro, es mas, en postgres podes usar lenguajes no standards para hacer funciones especificas (tambien podes generar aplicaciones en C por ejemplo), en mysql estas mas limitado en cuanto a esas cosas, aunque como lenguaje de SQL es un poco mejor, por lo menos para mi gusto, te diria que busques por la red cualquier tipo de documentacion de MySql y vas a ver que los cambios son pocos, pero significativos. (Uno de los mas importantes que extraño de postgres con respecto a mysql es que postgres tiene sobrecarga de funciones y MySql no), espero que te haya sido de utilidad.
Saludos


La franja horaria es GMT -5. Ahora son las 02:06:19.

Desarrollado por: vBulletin® Versión 3.8.9
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.

DeNunCianDo.CoM ©

Page generated in 0,02186 seconds with 8 queries

SEO by vBSEO