Pessoal boa madruga, como se cria uma TABELA através de uma função ? depois INSERI dados radomicos nela ?
[code]CREATE FUNCTION populate() RETURNS integer AS $$
DECLARE
BEGIN
LOOP
CREATE TABLE t2
(
e integer,
f integer
);
END LOOP;
END;
$$ LANGUAGE plpgsql;
SELECT populate();
[/code]
[code]-- Function: processa_emp_audit()
– DROP FUNCTION processa_emp_audit();
CREATE OR REPLACE FUNCTION processa_emp_audit()
RETURNS trigger AS
$BODY$
BEGIN
–
– Cria uma linha na tabela emp_audit para refletir a operação
– realizada na tabela emp. Utiliza a variável especial TG_OP
– para descobrir a operação sendo realizada.
–
IF (TG_OP = ‘DELETE’) THEN
CREATE TABLE emp2 (
nome_emp text NOT NULL,
salario integer
);
ELSIF (TG_OP = 'UPDATE') THEN
CREATE TABLE emp3 (
nome_emp text NOT NULL,
salario integer
);
ELSIF (TG_OP = 'INSERT') THEN
CREATE TABLE emp4 (
nome_emp text NOT NULL,
salario integer
);
END IF;
RETURN NULL; -- o resultado é ignorado uma vez que este é um gatilho AFTER
END;
$BODY$
LANGUAGE ‘plpgsql’ VOLATILE
COST 100;
ALTER FUNCTION processa_emp_audit() OWNER TO root;
CREATE TRIGGER emp_gatilho BEFORE INSERT OR UPDATE ON emp
FOR EACH ROW EXECUTE PROCEDURE emp_gatilho();
INSERT INTO emp (nome_emp, salario) VALUES (‘João’,1000);
INSERT INTO emp (nome_emp, salario) VALUES (‘José’,1500);
INSERT INTO emp (nome_emp, salario) VALUES (‘Maria’,250);
UPDATE emp SET salario = 2500 WHERE nome_emp = ‘Maria’;
SELECT * FROM emp;
[/code]