postgresql - pq: "$1" Postgres + go 处或附近的语法错误
问题描述
我在这里做错了什么?也尝试引用 new_name ,仍然显示错误:pq: syntax error at or near "$1" Postgres + go
func ChangeDBname(new_name string) {
oldname := "intern"
quoted := pq.QuoteIdentifier(oldname)
_, e1 := db.Exec(fmt.Sprintf("ALTER TABLE %s RENAME TO $1",quoted) , new_name)
if e1 != nil {
fmt.Println("Eroor in change name")
log.Fatal(e1.Error())
} else {
fmt.Println("Table name changed to", new_name)
}
}
解决方案
表名不是一个值。所以 PostgreSQL 解析器不希望在这个 DDL 中有一个占位符。
检查这个:
db.Exec(fmt.Sprintf("ALTER TABLE %s RENAME TO %s",pq.QuoteIdentifier(oldname), pq.QuoteIdentifier(new_name)))
推荐阅读
- r - 查找累积和,然后平均 R 中的值
- javascript - Datepicker 默认日期应该是昨天,并且总是从月份的第一天开始
- azure - 为什么在 Azure 门户上禁用“创建主题”选项?
- javascript - 未捕获的类型错误:无法读取 vueJs 中未定义的属性“长度”(AmChart 实现)
- android - 使用 setOnTouchListener 时 Webview 单击事件不起作用
- jenkins - 将 Jenkins 服务器从 Windows 迁移到 Linux 机器
- c# - 如何使用 api 从 gitlab repo 中提取 LFS 文件
- go - 如何更有效地返回数组
- javascript - Thingworx 甘特图错误为“TypeError:无法读取未定义的属性‘ActualDataRows’”
- javascript - 动态状态没有在反应中更新