2017-11-09 4 views
0

私はPgAdmin4を使ってこのトリガーを試しました。 (私はいくつかのバグを持っていると思います。このGUIは)postresqlがpgadminとlastnameとfirstnameを結合するトリガー

私のトリガーは次のとおりです。

CREATE TRIGGER name_update BEFORE UPDATE ON customer 
    FOR EACH ROW 
    BEGIN 
      SET NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname); 
    END; 

CREATE TRIGGER name_insert BEFORE INSERT ON customer 
    FOR EACH ROW 
    BEGIN 
     SET NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname); 
    END; 

が、私はこのエラーを取得しています:

多分、私は削除が開始と終了しようとしましたが、ナッシングが起こりますシェルやtxtファイルで試してみる必要がありますか? pgadminの外でそれをやり直し、キャリッジリターンを管理する最善の方法は何ですか?私はmysqlでdelimeterを使っていました。

+0

[手動で](https://www.postgresql.org/docs/current/static/plpgsql-trigger.html)あなたは、その構文を見つけましたか? –

+0

ここhttps://stackoverflow.com/questions/15445944/how-to-create-trigger-to-do-concatenation-of-fieldsこちら:https://stackoverflow.com/questions/28732963/how-to mysqlの-auto-populate-name-on-last-in-last-mysql – DDave

+0

マニュアルには、私の場合の実例はありませんでした – DDave

答えて

0

作成手順が必要で、彼女をトリガーで呼び出す必要があります。例:

create or replace function trigger_function() 
returns trigger as 
$$ 
begin 
    NEW.name = CONCAT_WS(', ', NEW.lastname, NEW.firstname); 
    return NEW; 
end; 
$$ 
language plpgsql; 

CREATE TRIGGER name_update 
    BEFORE UPDATE ON customer 
    FOR EACH ROW 
    EXECUTE PROCEDURE trigger_function(); 
関連する問題