1

次のテーブル定義があります。

 CREATE TYPE product_limit_type AS (
    product_code varchar(5),
    limit_type varchar(30),
    limit_value numeric(4,0)
);

CREATE TABLE rule_locks (
    session_id bigint,
    rule_id bigint,
    product_limit product_limit_type
);

次のクエリを実行すると:

DELETE FROM rule_locks
WHERE (session_id=session_id_ AND product_limit.product_code=product_code_);

サーバーから次のエラーが表示されます。

ERROR:  missing FROM-clause entry for table "product_limit"
LINE 1: ...FROM rule_locks WHERE (session_id=session_id_ AND product_li...
                                                         ^

session_id_およびproduct_code_は、対応する型の事前に初期化された変数です。

セルメンバー変数が特定の条件を満たす行を消去/変更するにはどうすればよいですか?

4

1 に答える 1

3

次のように、サブフィールドにアクセスするには、フィールドの名前を括弧で囲む必要があります。

DELETE FROM rule_locks WHERE (session_id=session_id_
     AND (product_limit).product_code=product_code_);

ドキュメントの「複合型へのアクセス」を参照してください。

于 2013-01-28T10:34:30.183 に答える