使用名称而不是问号的 SQL 参数化查询

标签 sql postgresql parameterized-query

问题:

有没有办法在参数化查询中使用名称而不是问号?如果是这样,谁能推荐一些 Material 来解释如何执行此操作/语法?

更多细节:

例如,如果我有这样的东西:

INSERT INTO inventory VALUES(?)

是否有可能有这样的东西而不是做与问号完全相同的事情:

INSERT INTO inventory VALUES("prices")

在发布问题之前,我尝试自己检查它是否可行,但没有成功。所以,我想我会问这是否可能。

我觉得如果您有一个非常长的查询,假设有 20 个参数,您不希望每次更改某些内容时都必须计算问号以确保您有足够的参数。此外,我认为这可能会使代码更具可读性(尤其是当您有很多参数需要跟踪时)。

我是 sql 的新手,所以我不确定如果我添加我正在使用 postgresql 是否会有很大的不同(对于这个问题)。

注意:

有个类似的问题here , 但它没有一个有用的答案

最佳答案

我建议将大查询封装在 function 中,您可以在其中使用参数名称。 一个示例(众多示例中的一个):

您甚至可以设置默认值并使用命名参数调用函数等:

关于使用名称而不是问号的 SQL 参数化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35736848/

相关文章:

sql-server - sp_ExecuteSql : The parameterized query expects the parameter @XX, 未提供

mysql - 如何检查一致性约束,该约束显示用户不属于他们应该属于的属性?

sql - 有效计算当前活跃用户数

delphi - 就 ADO 而言,nvarchar(max) 有多大?

PostgreSQL + IntelliJ : FATAL : role xxx doesn't exist

c# - 如何从 PostgreSQL 写入/读取二进制数据?

encryption - 通过经典 ASP 函数执行用户定义的函数

php - 尝试使用 php ( HTTP POST ) 从 iOS 连接到 MySQL 数据库

php - 在不同条件下对单列进行计数

ruby-on-rails-3 - postgresql 版本不会改变默认版本