PDA

Ver la Versión Completa Con Imagenes : Ayuda Urgente


Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
tolima0611
26-03-2011, 12:59:53
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.

Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
tolima0611
26-03-2011, 13:04:43
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
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