- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用 this driver从 Go 与 psql 通信。现在,当我发出更新查询时,我无法知道它是否实际更新了任何内容(如果不存在此类 ID,它可以更新 0 行)。
_, err := Db.Query("UPDATE tags SET name=$1 WHERE id=1", name)
我试图调查 err 变量(按照文档建议的 Insert 语句的方式):
if err == sql.ErrNoRows {
...
}
但即使 id 不存在,err 仍然为 null。
我还尝试将 QueryRow 与返回子句一起使用:
id := 0
err := Db.QueryRow("UPDATE tags SET name=$1 WHERE id=1 RETURNING id", name).Scan(&id)
但是当数据库中不存在 id=1 时,这个无法扫描 &id。
那么检查我的更新是否更新任何内容的规范方法是什么?
最佳答案
对于不返回结果的查询,请尝试使用 db.Exec()
而不是 db.Query()
。它没有返回 sql.Rows
对象(无法检查受影响的行数),而是返回一个 sql.Result
对象,该对象具有方法 RowsAffected()(int64,错误)
。这将返回受馈送到 Exec()
调用的查询中的任何写入操作影响(插入、删除、更新)的行数。
res, err := db.Exec(query, args...)
if err != nil {
return err
}
n := res.RowsAffected()
// do something with n
请注意,如果您的查询不直接影响任何行,而只是通过子查询影响行,则受子查询影响的行将不会被计为受该方法调用影响的行。
此外,正如方法注释所指出的,这不适用于所有 数据库类型,但我知道它确实适用于 pq
,因为我们我们自己使用该驱动程序(并使用 RowsAffected()
方法)。
引用链接:
关于go - 如何查看Psql是否成功更新了Go中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37818970/
我的数据库有 很多 table (比如 400+),我只记得我要找的那个人的名字的一部分。 我知道 \d将显示所有表格,但这太多了。是否有一些命令可以列出名称与给定正则表达式匹配的所有表? 谢谢 最佳
有没有办法使用 psql 命令行界面显示表中的所有内容? 我可以使用\list显示所有数据库,\d显示所有表格,但如何显示表格中的所有数据? 最佳答案 较新版本:(从 8.4 - mentioned
我有一个奇怪的情况,which psql 结果是 /usr/local/php5/bin/psql。 我无法退出它,而且它是一个可执行文件。我在网上阅读的所有内容都不适用。 我试过这样做:pg_ctl
刚刚创建了一个登录角色,随后创建了一个由登录角色拥有的数据库(两者都具有相同的名称“。我指定了一个密码。键入 psql fplanner 并立即被带到没有它的控制台从密码询问。我登录到我的计算机的管理
使用 psql,我想格式化 bool 值以显示为 TRUE 和 FALSE 而不是 t和 f 默认情况下,因为我发现后者很难相互区分。 我可以通过在我的 ~/.psqlrc 中设置以下内容来更改 nu
我正在构建一个从 friend 那里克隆的 Rails 应用程序。我正在使用 Ubuntu 13.10,rails 3.2.14。我正在使用 postgresql 数据库,当我尝试运行 rake db
我对 psql 完全陌生,对某些术语不是特别熟悉。我正在按照此处链接中有关模仿的 ETL 流程的说明进行操作:https://github.com/chichukw/mimic-omop/blob/m
我正在尝试学习如何将 prisma 与 psql 数据库一起使用。 我在使用 id 是 uuid 字符串的引用时遇到问题。 我有一个用户模型: model User { id Str
lecture3-# SELECT * FROM flights; ERROR: syntax error at or near "psql" LINE 1: psql 这是代码和错误。我在 Env
我正在尝试执行两个 sql 命令(创建一个新的架构和表),如果执行失败,它将启用两个命令的回滚。我要连接的数据库是 AWS Redshift。 create schema if not exists
我正在尝试将新终端 Postgres shell (psql) 添加到 Windows 终端。我想将其添加到设置中的配置文件列表中。 这是 Windows 终端。 在设置文件中,我们可以添加配置文件列
我在使用 PostgreSQL 时遇到问题。我最近在 ubuntu 20.04 中安装了这个版本 (13+223.pgdg20.04+1) 的 postgresql 包。 我正在尝试运行 psql命令
我将我的 postgres 版本从 9.2.24 切换到 9.6,因为我需要 jsonb 兼容性以及其他最新功能。我在 centos 7 上运行虚拟机。 我决定删除所有现有的 postgres 实例(
大家好,正如标题所说,我在尝试从转储文件导入“创建”新数据库时遇到问题。当我尝试运行 sql 查询时 - 我收到有关 的错误 ' COPY ' .当你通过 psql 控制台运行时,我得到 wrong
每当我尝试以用户 postgres 身份运行 psql 命令时,我都会收到此错误。 psql: 无法连接到服务器: 没有那个文件或目录 服务器是否在本地运行并接受 Unix 域套接字“/var/run
heroku pg:psql 命令在尝试连接到数据库时抛出错误。 (venv) PS C:\Users\Mevin\Desktop\poster> heroku pg:psql ---> Connec
我是 Postgres 和 Bash 的新手,所以我不确定有什么区别。 我正在尝试在 bash 脚本中自动更新 Postgres 中的表。我有 .sql 文件并创建了 .pgpass 600 的文件。
我正在使用 Windows 10 并为其安装了 Psql (9.6.4)。安装时,它要求我输入 super 用户“postgres”的密码,我输入的是“asdfasdf”。所以安装后,我用 psql
更新:有人在下面提到这是重复的:https://dba.stackexchange.com/questions/269473/what-does-psql-usr-pgsql-11-lib-libpq
在 postgres.app 安装和运行时出现问题,但是当我输入 哪个psql然后我收到“/usr/bin/psql”而不是 postgres.app 期望的正确路径。当我回应我的 PATH 时,我得
我是一名优秀的程序员,十分优秀!