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

別のテーブルに挿入するトリガーを作成する

    行トリガーの同じテーブルからレコードを取得することはできません。 :newと:oldを使用して、実際のレコードから値にアクセスできます(これはあなたの場合ですか?)。その後、トリガーを次のように書き換えることができます

    CREATE OR REPLACE TRIGGER AFTERINSERTCREATEBILL
    AFTER INSERT
    ON READING
    FOR EACH ROW 
    
    DECLARE
    
      varCustID   Varchar(10);
    
    BEGIN 
    
      Select CustID INTO varCustID
        From Address A
        Join Meter M 
          on A.postCode = M.postCode
        Where M.MeterID = :new.MeterID;
    
      INSERT INTO BILL VALUES 
      (SEQBILLNO.NEXTVAL, SYSDATE, 'UNPAID' , 100 , varCustID , SEQREADNO.CURRVAL); 
    
    END;
    

    READING表から他のレコードを照会する必要がある場合は、文トリガー、行トリガー、およびPLSQLコレクションを組み合わせて使用​​する必要があります。この良い例は、AskTom.oracle.com にあります。



    1. PostgresHStoreエラー-不明な演算子

    2. SQL Serverで「smalldatetime」を「date」に変換する(T-SQLの例)

    3. SpringDataJPAを使用してストアドプロシージャを正しく呼び出す

    4. ODBC準拠データベースとは何ですか?