PostgreSQL 用户定义类型成员比较
Posted
技术标签:
【中文标题】PostgreSQL 用户定义类型成员比较【英文标题】:PostgreSQL user defined type member compare 【发布时间】:2013-01-28 09:21:24 【问题描述】:我有如下表定义:
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_
是对应类型的预初始化变量。
它应该如何擦除/修改一行,其单元成员变量满足给定条件?
【问题讨论】:
【参考方案1】:字段名称周围应有括号以访问其子字段,如:
DELETE FROM rule_locks WHERE (session_id=session_id_
AND (product_limit).product_code=product_code_);
请参阅文档中的Accessing Composite Types。
【讨论】:
以上是关于PostgreSQL 用户定义类型成员比较的主要内容,如果未能解决你的问题,请参考以下文章