OLa,
Estou tentando fazer uma funçao no POSTGRESQL para alterar os valores de uma coluna da tabela, mas gostaria de usar um cursor para aprender a lidar com eles.
Tenho uma tabela de empregados que tem como pk empno e uma fk (na mesma tabela emp) é mgr.
Gostaria de alterar os valores da coluna mgr e para isso comecei a fazer a funçao. Alguém me ajuda?
[code]
CREATE TABLE emp
(
empno int4 NOT NULL,
ename varchar(30) NOT NULL,
job varchar(30) NOT NULL,
deptno int4 NOT NULL,
mgr int4);
ALTER TABLE emp
ADD CONSTRAINT “PKemp” PRIMARY KEY(empno);[/code]
empno | ename | job | deptno | mgr |
-------±--------±----------±-------±-----+
7839 | KING | P | 10 | |
7698 | BLAKE | M | 30 | 7839 |
7900 | JAMES | CL | 30 | 7698 |
7990 | JOHNSON | S | 30 | 7698 |
7654 | MARTIN | S | 30 | 7698 |
7844 | TURNER | S | 30 | 7900 |
Gostaria de quando solicitar para alterar o diretor (coluna mgr) 7698 para 7900 … alterar todos os valores 7698 para 7900.
[code]CREATE OR REPLACE FUNCTION mudar_diretor(diretor_novo IN INTEGER , diretor_velho IN INTEGER)
RETURNS VOID
AS $$
DECLARE
modificar CURSOR IS SELECT * FROM emp WHERE mgr = diretor_velho;
BEGIN
UPDATE emp
SET mgr=diretor_novo;
END;
$$ LANGUAGE ‘plpgsql’;[/code]
OBRIGADA,
veronica