【问题标题】:Postgresql say “schema does not exist”Postgresql 说“模式不存在”
【发布时间】:2018-03-25 08:53:33
【问题描述】:

我怎样才能使这个查询有效?

我有函数top_movies_ceiling(3)

CREATE OR REPLACE FUNCTION top_movies_ceiling(n_top integer)  -- n_top dos mais vendidos
RETURNS SETOF inventory AS $$
BEGIN
RETURN QUERY
SELECT *
FROM inventory
ORDER BY sales DESC
LIMIT n_top;
END;
$$LANGUAGE plpgsql; 

返回:

prod_id|quan_in_stock|sales

现在,当我运行查询时:

SELECT products.price 
FROM products
WHERE products.prod_id = prod_id.top_movies_ceiling(3);

我收到错误:schema "prod_id" does not exist

我希望你能帮助我! 谢谢!

【问题讨论】:

  • 你为什么使用prod_id.top_movies_ceilin?..
  • 因为我已经打开了一个游标,并且我已经将它从与“prod_id”相同的类型中提取到一个数字变量中,以便保存它。

标签: sql database postgresql plpgsql


【解决方案1】:

一个疯狂的猜测 - 这是你尝试做的吗?

SELECT products.price 
FROM products
JOIN (select * from top_movies_ceiling(3)) top_m on top_m.prod_id = products.prod_id
;

【讨论】:

    【解决方案2】:

    错误在:

    prod_id.top_movies_ceiling(3)

    这意味着:来自模式 prod_id 的函数 top_movies_ceiling(int)。

    请输入 top_movies_ceiling() 的 CREATE FUNCTION 以便更好地了解您想要什么。

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 2022-01-13
      • 2020-02-03
      • 2016-07-05
      • 2012-05-23
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多