gpt4 book ai didi

go - postgresql golang 创建表错误,pq : syntax error at or near "$1"

转载 作者:IT王子 更新时间:2023-10-29 02:37:25 28 4
gpt4 key购买 nike

嗨,我不明白我在这里做错了什么。

_, err = db.Exec("CREATE TABLE $1", "books")
if err != nil {
log.Fatal(err)
}

我看不出这里有什么语法错误。

我也做过:

_, err = db.Exec("CREATE TABLE books")
if err != nil {
log.Fatal(err)
}

也给出了语法错误

最佳答案

标识符不能用作占位符。那里只能使用值。 (这不是 Go 或其数据库驱动程序的限制,而是关系数据库本身具有这样的“限制”)。

如果是硬编码标识符 - 使用精确查询

CREATE TABLE books

在动态占位符的情况下 - 确保您使用的是允许哪些值的白名单。

UPD

只是这个查询

CREATE TABLE books

无效,因为它缺少任何列定义。它必须至少是表格中的一列。

无效,因为它缺少括号:

CREATE TABLE books()

在其中定义列。

TIL:您可以在 postgresql 中拥有一个包含零列的表。

引用资料:

关于go - postgresql golang 创建表错误,pq : syntax error at or near "$1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51073154/

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