sql >> データベース >  >> RDS >> PostgreSQL

複数のテーブルのコードを動的に生成するPostgreSQLトリガー

    私は間違って表示されることに非常に熱心です(私も時々これが必要です)が、変数を使用して列名を参照することは、実際にPL/ではなくPL/Cトリガーを使用する必要があるケースの1つです。 PgSQLトリガー。このようなトリガーの例は、contrib/spiおよびPGXNにあります。

    または、列に一貫して名前を付けて、直接参照できるようにします。 NEW.tenant_code

    個人的には、私は通常、トリガーを作成する関数を作成することになります。

    create function create_tg_stuff(_table regclass, _args[] text[])
      returns void as $$
    begin
      -- explore pg_catalog a bit
      execute $x$
      create function $x$ || quote_ident(_table || '_tg_stuff') || $x$()
        returns trigger as $t$
      begin
        -- more stuff
        return new;
      end;
      $t$ language plpgsql;
      $x$;
    end;
    $$ language plpgsql;
    


    1. MySQL:同じMySqlインスタンスでMySQLデータベースのクローンを作成する

    2. 加重行確率を持つPostgreSQLテーブルからランダムな行を選択します

    3. 文字列SQLから最初の数値を抽出します

    4. MySQLSETデータ型をPostgresに変換します