gpt4 book ai didi

sql - 使用准备好的语句创建 PostgreSQL 表注释

转载 作者:行者123 更新时间:2023-11-29 13:47:14 36 4
gpt4 key购买 nike

是否可以准备一个 Postgres 'COMMENT ON' 语句?

我有一个允许用户创建表的程序。我想给他们添加表格内容描述的选项。由于此数据来自用户,我想使用准备好的语句。

使用 Ruby 和“pg” ' gem,我使用以下设置 Postgres 连接和示例数据:

table_name  = "test_shakespeare"
description = "Shakespeare's sonnets"

con = PG.connect(
:dbname => "poefy",
:user => "poefy",
:password => "poefy"
)

sql = "CREATE TABLE #{table_name} (example TEXT);"
con.exec(sql)

这是我失败的方法,以及它们抛出的错误。

# ERROR:  syntax error at or near "$1" (PG::SyntaxError)
sql = "COMMENT ON TABLE #{table_name} IS $1;"
con.exec(sql, [*description])

# ERROR: syntax error at or near "$1" (PG::SyntaxError)
sql = "COMMENT ON TABLE #{table_name} IS $1;"
con.prepare("comment", sql)
con.exec_prepared("comment", [*description])

# ERROR: could not determine data type of parameter $1 (PG::IndeterminateDatatype)
sql = "COMMENT ON TABLE #{table_name} IS '$1';"
con.exec(sql, [*description])

# ERROR: bind message supplies 1 parameters, but prepared statement "comment" requires 0 (PG::ProtocolViolation)
sql = "COMMENT ON TABLE #{table_name} IS '$1';"
con.prepare("comment", sql)
con.exec_prepared("comment", [*description])

对于这种语句,似乎无法进行准备,我应该求助于SQL字符串操作。既然如此,解决这个问题的最佳方法是什么?数据既不敏感也不重要,我只关心正确表示的引号和撇号。

提前致谢。

最佳答案

我假设 ruby​​ 支持与 postgres 相同的语句,which does it for

Any SELECT, INSERT, UPDATE, DELETE, or VALUES statement

不是COMMENT IS

关于sql - 使用准备好的语句创建 PostgreSQL 表注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46342071/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com