PostgresQL错误:关系不存在

时间:2018-08-07 04:11:42

标签: postgresql plpgsql

我是Postgres和plpsql的新手,如果答案很明显,对不起。但是,我无法弄清楚我在做什么错。当我使用示例数据库函数时,一切都很好。当我尝试创建自己的应用程序时:

constructor()

该函数将执行,但是通过运行以下测试语句对其进行测试将失败:

CREATE OR REPLACE FUNCTION get_trans (p_param VARCHAR) 
  RETURNS TABLE (
    amount money,
    transactionId UUID
  ) 
  AS $$
  BEGIN
    RETURN QUERY SELECT
      amount,
      transactionId
    FROM
    transactions;
  END; $$ 

LANGUAGE 'plpgsql';

,出现此错误:

SELECT * 
FROM public.get_trans(
  'bs'
)

这似乎是plpsql的一个非常常见的错误,而且我意识到我可能显然漏掉了一些东西,但到目前为止,对于我的情况,没有任何帮助。是目前仅具有主键的直接备用表。

任何提示都受到高度赞赏。

更新:因此,由于有了LD,我发现我的表尽管由于语法错误而在任何模式中都不存在。事实证明,正如我所认为的,postgres与MSSQL的区别更大,并且更难清除脚本错误。主要错误是-您不能在表或列定义中使用驼峰式大小写。一旦修复了这些问题并重新运行该功能,一切就好了。

1 个答案:

答案 0 :(得分:1)

功能本身似乎还可以。 请通过使用(检查结果中的table_schema列)来确保表事务存在于公共架构中:

SELECT * 
FROM information_schema.tables 
WHERE  table_name = 'transactions'