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

    レコッドを出す

    [エラー]エラー:テーブル名はtemp_CONTEXTで始まる必要があります:RAISEのPL / pgSQL関数trg_create_table_func()行10

    かっこいい〜



    1. PHPmysql文字セットutf8の問題

    2. 更新された行数を取得する

    3. 安全なTO_NUMBER()

    4. 単一の列で異なる値のインスタンスをカウントするOracleSQL