2017-12-17 8 views
1

QuestionnaireプラグインMoodleの一部である複数の表からデータを取り出すために実行するクエリがあります。ビューのトリガーを使用して既存の列を別のデータで更新する

これはビューを返します。 (PHP検索のために別のビューに参加する) カラムにはapp_refのref番号が挿入されていて、別のカラムに同じカラムのref_numberがコピーされます。

ref_number|app_ref 
      1234 
      2345 

私はGoogleで検索していると私はトリガを使用する必要があります理解が、私は、トリガ/構築1(学習のPostgreSQL)を使用したことがないので、PostgreSQL siteに読んだとして、私はわからないんだけど、希望トリガーの実行前または後?

答えて

0

私が正しく理解している場合は、複数のテーブルから選択するため、更新できないビューを更新したいとします。

まず、あなたが欲しいのアップデートを実行手順を記述することができます。

CREATE OR REPLACE FUNCTION my_view_update() 
    RETURNS trigger AS 
$BODY$ 
BEGIN 

-- Here comes your SQL to handle your ref_number and app_ref issue 
-- use NEW.app_ref or OLD.app_ref to access values 

RETURN NEW; 
END 
$BODY$ 

あなたは、代わりにそのような「アップデート」のあなたの機能を実行するためのビューを伝えることができます。

CREATE TRIGGER my_update 
    INSTEAD OF UPDATE 
    ON my_view 
    FOR EACH ROW 
    EXECUTE PROCEDURE my_view_update; 
関連する問題