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

値を設定するためのPostgresql挿入トリガー

    列にデフォルト値を設定しても機能しないため、トリガーが必要なのは正しいです。デフォルト値はnullに対してのみ機能します。 値であり、空白値の防止には役立ちません。

    postgresでは、トリガーを作成するためのいくつかのステップがあります:

    ステップ1:タイプtriggerを返す関数を作成します :

    CREATE FUNCTION my_trigger_function()
    RETURNS trigger AS $$
    BEGIN
      IF NEW.C1 IS NULL OR NEW.C1 = '' THEN
        NEW.C1 := 'X';
      END IF;
      RETURN NEW;
    END;
    $$ LANGUAGE plpgsql
    

    ステップ2:に起動するトリガーを作成します insertは、挿入される前に値を変更できるようにし、上記の関数を呼び出します。

    CREATE TRIGGER my_trigger
    BEFORE INSERT ON T
    FOR EACH ROW
    EXECUTE PROCEDURE my_trigger_function()
    

    これで完了です。

    SQLFIddleで実行されている上記のコードを参照して、正しく機能することを示してください!

    コメントで、値'X' サブクエリから取得されます。その場合は、関連する行を次のように変更します。

    NEW.C1 := (select some_column from some_table where some_condition);
    


    1. データが含まれているときに列タイプを数値からvarchar2に変更するOracleSQL

    2. node.js async/awaitをMySQLで使用する

    3. クラウドテクノロジーに関する4つの一般的な神話

    4. SQLで重複する行を削除する方法