CREATE FUNCTION populate() [resolvido]

1 resposta
juniorsatanas

Pessoal boa madruga, como se cria uma TABELA através de uma função ? depois INSERI dados radomicos nela ?

CREATE FUNCTION populate() RETURNS integer AS $$
DECLARE

     
BEGIN
    LOOP
CREATE TABLE t2
(
  e integer,
  f integer
);
      
    END LOOP;

END;
$$ LANGUAGE plpgsql;

SELECT populate();
-- 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;

1 Resposta

juniorsatanas

RESOLVIDO… valeu !

Criado 3 de agosto de 2010
Ultima resposta 3 de ago. de 2010
Respostas 1
Participantes 1