sql >> Database teknologi >  >> RDS >> PostgreSQL

hvordan man opretter hændelsesudløser for at oprette tabel eller vælge ind

dette er min kode, den opfylder mine behov

kode:

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

ud rekods

[Fejl] FEJL:Tabelnavnet skal begynde med temp_CONTEXT:PL/pgSQL-funktion trg_create_table_func() linje 10 ved RAISE

det er fedt ~



  1. Hvordan opbevarer jeg ordrer?

  2. Adgang til docker container mysql databaser

  3. Sammenføjning af to tabeller i en kompleks forespørgsel (ikke ensartede data)

  4. hvorfor skal jeg bruge mb_convert_encoding($name,'ISO-8859-15','utf-8') for at få vist accenttegn?