PostgreSQL中的函数中是否存在命名参数的约定

时间:2014-08-04 13:17:42

标签: postgresql plpgsql

我来自SQL Server后台,在存储过程中使用/鼓励使用'@'符号。这很有用,因为您可以轻松查看列是什么以及值是什么。例如。

CREATE PROCEDURE Foo
    @Bar    VARCHAR(10),
    @Baz    INT
AS
BEGIN
    INSERT INTO MyTable (
        Bar,
        Baz)
    VALUES (
        @Bar,
        @Baz)

END

我知道我可以使用序数位置,但是我们的一些存储过程有20个左右的参数,并且命名参数使它更易读IMO。

PostgreSQL社区是否有某种约定用于前缀?我试图找出确切的命名参数的规则,但我的谷歌搜索没有产生任何东西。

1 个答案:

答案 0 :(得分:7)

参数标识符遵循与其他标识符相同的规则:

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

http://www.postgresql.org/docs/current/static/xfunc-sql.html#XFUNC-SQL-FUNCTION-ARGUMENTS

通常使用下划线_启动参数标识符,我认为它有意义,尽管它不是惯例。

通过使用函数名称

限定标识符,也可以避免歧义
my_funtion.my_parameter