PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

como criar gatilho de evento para criar tabela ou selecionar em


este é o meu código, atende às minhas necessidades

código:
CREATE OR REPLACE FUNCTION trg_create_table_func()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
DECLARE
    obj record;    
BEGIN
  FOR obj IN SELECT * FROM pg_event_trigger_ddl_commands() WHERE command_tag in ('SELECT INTO','CREATE TABLE','CREATE TABLE AS')
  LOOP
        if   obj.object_identity !~ 'public.temp_'  
        THEN
        raise EXCEPTION 'The table name must begin with temp_';
        end if;
        END LOOP;
END;
$$;

CREATE EVENT TRIGGER trg_create_table ON ddl_command_end
WHEN TAG IN ('SELECT INTO','CREATE TABLE','CREATE TABLE AS')
EXECUTE PROCEDURE trg_create_table_func();

fora registros

[Err] ERRO:O nome da tabela deve começar com temp_CONTEXT:função PL/pgSQL trg_create_table_func() linha 10 em RAISE

é legal ~