sql >> Databasteknik >  >> RDS >> PostgreSQL

hur man skapar händelseutlösare för att skapa tabell eller välja in

det här är min kod, den uppfyller mina behov

kod:

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

ut omkodningar

[Err] FEL:Tabellnamnet måste börja med temp_CONTEXT:PL/pgSQL-funktion trg_create_table_func() rad 10 vid RAISE

det är coolt ~



  1. ORA-01722:ogiltigt nummer på Entity Framework

  2. Linux-filsystem och riktmärken för PostgreSQL-kontrollpunkter

  3. MySQL välj ett fält från tabellen WHERE-villkoret finns i flera rader

  4. Hur importerar man tabeller med saknade värden?