PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

как да създадете тригер за събитие за създаване на таблица или избор в

това е моят код, той отговаря на нуждите ми

код:

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

изходни записи

[Err] ГРЕШКА:Името на таблицата трябва да започва с temp_CONTEXT:PL/pgSQL функция trg_create_table_func() ред 10 при RAISE

готино е ~



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изчислим сумата от множество колони в PostgreSQL

  2. Връщане на множество SERIAL стойности от пакетно вмъкване на Posgtres

  3. Обхват за незадължителна връзка has_one със себе си

  4. Как да направим SUM без групиране по

  5. Как да използвате пакет graphql-type-json с GraphQl