【问题标题】:Update specific field(s) in each row in a database using python使用python更新数据库中每一行中的特定字段
【发布时间】:2021-10-03 16:25:53
【问题描述】:

假设我有下表:

id  | name | age
----+------+----
1     john   30
2     doe    22

我想使用 python 例如sqlalchemyid=2 的行的agename 更新为32 和tom

我正在使用 PostgreSQL 数据库(以及用于开发的 sqlite)。

【问题讨论】:

  • 阅读文档Update,你会发现你错了。尽管 Postgres 中的任何类型的 UPDATE 实际上都是 DELETE/INSERT,但您将在一段时间内拥有新旧行。
  • 我知道有更新 SQL 争论,但更新了整行。不,它只更新您选择更新的列:postgresqltutorial.com/postgresql-update
  • 我的错 - 已被删除和更新
  • 转到此处SQLAlchemy 并在页面顶部的Search terms: 框中输入update。有许多适用的方法。

标签: python postgresql sqlite


【解决方案1】:

你想要的update是:

update t
   set name = 'tom',
       age = 32
   where id = 2;

update 语法中,您列出了正在更改的列。我不知道在不指定列名的情况下替换一行中所有列的语法。

在后台,数据库(通常)正在替换整行。但这对你来说是不可见的。事实上,写入的内容通常是一个数据页,上面有很多行。如果您正在学习 SQL 的基础知识,我不会担心内部机制。

【讨论】:

  • 谢谢!我忘了写我正在使用 Python,例如 sqlalchemy - 我怀疑它不会改变语法?
  • @CutePoison 。 . .它应该支持基本相同的语法。这是 SQL 语法,适用于所有数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-30
  • 1970-01-01
  • 2021-12-31
  • 2018-01-15
  • 1970-01-01
相关资源
最近更新 更多