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

トリガー機能でNEW。*をEXECUTEに渡す方法

    USING EXECUTEの句

    CREATE FUNCTION foo ()
      RETURNS trigger AS
    $func$
    BEGIN
      IF TG_OP = 'INSERT' THEN
         EXECUTE format('INSERT INTO %s SELECT $1.*'
                      , 'samples_' || left(NEW.md5, 2);
         USING NEW;
      END IF;
      RETURN NULL;
    END
    $func$ LANGUAGE plpgsql;
    

    そしてEXECUTE 括弧は必要ありません。
    必要に応じて引用しない限り、識別子は小文字に折りたたまれていることに注意してください(%I %sの代わりに format()で 。

    詳細:




    1. 1つのクエリでmysqlデータを一括更新する方法は?

    2. mysqlphp検索で検索テキストを強調表示します

    3. 日時php/mysqlに30分を追加

    4. OSX 10.9MavericksおよびEclipseKepler(4.3.2)またはM6 Eclipse Luna(4.4)