为了账号安全,请及时绑定邮箱和手机立即绑定

将字段与占位符进行比较 - PostgreSQL

将字段与占位符进行比较 - PostgreSQL

Go
泛舟湖上清波郎朗 2022-01-10 19:07:31
我正在使用 Go 在 PostgreSQL 数据库上执行查询。请注意,在 DB 中id是 type bigint。db.Exec("UPDATE tags SET association_count = association_count - 1 WHERE id=?;", id)运行此代码时,出现 SQL 错误operator does not exist: bigint =?据我所知,这是由id和之间的输入不匹配引起的?。我尝试过使用,::但它会引发错误,并且没有发现任何关于此的内容。有趣的是,如果有空格,就像id = ?它会引发一般语法错误。知道如何投射或解决这个问题吗?
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

Postgres$#用于占位符postgres docs


创建预准备语句时,按位置引用参数,使用 $1、$2 等。可以选择指定相应的参数数据类型列表。如果未指定参数的数据类型或将其声明为未知,则从使用参数的上下文推断类型(如果可能)。执行语句时,请在 EXECUTE 语句中指定这些参数的实际值。有关详细信息,请参阅执行。


所以试试


result, err := db.Exec(`

    UPDATE tags

    SET association_count = association_count - 1

    WHERE id=$1;`, id

)

这是结果的样子


更新: a_horse_with_no_name提出了一个很好的观点。这取决于您使用的客户端库。我认为它是pq ,因为它在 golang 中的 postgres 中很流行。


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 487 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号