首页 > 解决方案 > 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)
}

}

标签: postgresqlgo

解决方案


表名不是一个值。所以 PostgreSQL 解析器不希望在这个 DDL 中有一个占位符。

检查这个:

db.Exec(fmt.Sprintf("ALTER TABLE %s RENAME TO %s",pq.QuoteIdentifier(oldname), pq.QuoteIdentifier(new_name)))

推荐阅读