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

テーブルへのINSERTで接続されたテーブルのデータをINSERTします。

    pgAdmin 単なるGUIです。 PostgreSQL を意味します 、 RDBMS

    外部キー制約 、参照されている列に存在しない値を使用できないように強制するだけのように。 ON UPDATE CASCADEを使用できます またはON DELETE CASCADE 参照された列からの変更を伝播しますが、新しい行を作成することはできません あなたが説明するようにそれで。間違ったツールを入手しました。

    あなたが説明することは、トリガー で達成できます。 。もう1つのより複雑な方法は、RULEです。 。ここでトリガーを使用します。

    PostgreSQLでは、トリガー関数 が必要です。 、主にplpgsql を使用します 、およびトリガー それを利用するテーブルの上で。

    次のようなもの:

    CREATE OR REPLACE FUNCTION trg_insert_row_in_tbl2()
      RETURNS trigger AS
    $func$
    BEGIN
       INSERT INTO tbl2 (my_id, col1)
       VALUES (NEW.my_id, NEW.col1)     -- more columns?
    
       RETURN NEW;  -- doesn't matter much for AFTER trigger
    END
    $func$  LANGUAGE plpgsql;
    

    そして、トリガーAFTER INSERT tbl1で :

    CREATE TRIGGER insaft
    AFTER INSERT ON tbl1
    FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();
    


    1. Mysql:翻訳レコードのテーブルの結合

    2. SQL Server:テーブルの最大行数

    3. 行、ページ、テーブルのロックとは何ですか?そして、それらが取得されたとき?

    4. オブジェクトが存在しないか、権限がないため、オブジェクトが見つかりません。 SQLServerのエラー