【问题标题】:create insertion rule on view returning id在视图返回 id 上创建插入规则
【发布时间】:2014-12-11 14:49:16
【问题描述】:

我有一个表 private.products 和一个表示该表的视图 public.products。而且我想在插入视图时在 private.products 中创建条目,一切正常,除了我还返回插入的 id 的内容:

CREATE RULE insert_product 
AS ON INSERT TO public.products DO INSTEAD 
INSERT INTO private.products (name) VALUES (new.name) RETURNING products.id;
ERROR:  RETURNING list has too few entries

我做错了什么?

【问题讨论】:

    标签: sql postgresql view rule sql-returning


    【解决方案1】:

    the relevant documentation 的措辞表明您必须返回与products 视图实际具有的列数相同的列数。这是因为规则本身不是查询;这是重写查询的规则。查询可能有自己的RETURNING 子句,可以引用视图的任何列。您的规则可以重写这些子句,但前提是您指定将每个返回的列重写为什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 2019-09-06
      • 2012-10-17
      • 1970-01-01
      相关资源
      最近更新 更多