1

私はこのトリガーを機能させようとしています:

tbl_artのCREATEトリガーtrig_tbl_art
位置0を更新する前にアクティブ
なので
始める
  IF(NEW.e OLD.e)THEN
    IF(NEW.f = OLD.f)THEN
   NEW.f = SELECT(NEW.e)* CAST(row_b AS NUMERIC(9,2))FROM table_a WHERE row_a ='someval';
終わり

tbl_art.eが変更された場合にのみ、tbl_art.fの値を計算するという考え方です。
NEW.fはNEW.e*[クエリから返される値]である必要があります

何か助けてください?

4

1 に答える 1

3

PSQL では、クエリの結果を変数に直接代入することはできません...これは、クエリが複数の列を返すことができるためですが、select ステートメントで into 句を使用することができます。

SELECT (NEW.e)*CAST(row_b AS NUMERIC(9,2)) FROM table_a  WHERE row_a = 'someval'
 into NEW.f;

クエリが 1 行のみを返すようにする必要があります。

于 2011-04-04T00:16:44.433 に答える