gpt4 book ai didi

python - 如何检查插入或更新是否会影响选择查询的结果

转载 作者:行者123 更新时间:2023-11-29 10:36:03 24 4
gpt4 key购买 nike

我有sql表:

CREATE TABLE station 
(title CHAR(256) PRIMARY KEY,
city CHAR(20),
latitude REAL,
longitude REAL);

我有一些疑问,例如Q1:

SELECT * FROM station WHERE latitude > 50 AND longitude > 90;

第二季度:

SELECT * FROM station WHERE latitude > 50 OR longitude > 90;

如何确定下一个插入查询:

INSERT INTO station VALUES ("Station 1", "London", 60, 10)

会改变Q2的结果,但不会改变Q1的结果?

假设选择查询可以无限复杂,有时很难回答这样的问题,这就是误报适合的原因。

<小时/>

换句话说,我如何编写这样的函数(Python)?

def can_affect(insert_query: str, select_query: str) -> bool:
"""
Tells if particular insert query can affect results of select query.

Returns False if there is no chance that insert will affect select query.
Otherwise, returns True.
"""

最佳答案

编辑:使用 Postgres 事务。

  1. 执行“开始事务读写;”。
  2. 执行选择。记录返回的行数。
  3. 执行插入。
  4. 再次执行选择。记录返回的行数。
  5. 执行“ROLLBACK;”。这将撤消您对表格所做的任何更改。
  6. 如果选择之间的行数不同,则返回 true。否则,错误。

关于python - 如何检查插入或更新是否会影响选择查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46409676/

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