gpt4 book ai didi

mysql - Postgresql/Python,将更新和插入查询合并为一个查询,仅当记录不存在时才插入

转载 作者:行者123 更新时间:2023-11-29 09:54:26 26 4
gpt4 key购买 nike

我正在使用以下两个查询(在 PostgreSQL/Python 中):

query_update = """UPDATE my_table
SET {}='{}'
WHERE index={}""".format(*[str(updated_columns), str(updated_values), str(updated_row_indices)])

query_insert = """INSERT INTO my_table ({})
VALUES ('{}')""".format(*[str(updated_columns), str(updated_values), str(updated_row_indices)])

我只想有一个查询,而不是这两个查询,如果记录不存在,该查询将自动插入记录。我有两个问题:

  1. 如何使用 PostgreSQL 将这两个查询合并为一个查询? (重要)
  2. 如何使用 MySQL 执行相同操作? (可选)

最佳答案

不需要query_update

ON CONFLICT 子句添加到 query_insert 变量中。

query_insert = """INSERT INTO my_table ({})
VALUES ('{}')
ON CONFLICT ({}) DO
UPDATE
SET {}""".format(*[str(columns_to_insert), str(column_values), str(key_columns)], str(column_values_update))

在这里,columns_to_insert 应该是以逗号分隔的要插入数据的列列表;column_values 应该是 columns_to_insert 的值的逗号分隔列表;key_columns 应该是以逗号分隔的主键列列表;column_values_update 应该是以逗号分隔的 column_name=column_value 对列表(类似于常规 UPDATE 命令)。

关于mysql - Postgresql/Python,将更新和插入查询合并为一个查询,仅当记录不存在时才插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131161/

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