【发布时间】:2023-01-26 17:26:59
【问题描述】:
我有一张包含不同类型商品编号的表格:
Date - Artsup - ArtTest - ArtCombo
-------------------------------
01-01-23 - S1 - T1 - S1T1
01-01-23 - S2 - T2 - S2T2
现在我想在同一个表中插入一条新记录,但首先我想检查我是否有可用的“ArtCombo”。
所以现在我首先像这样阅读表格:
cur.execute('SELECT ArtCombo from table1 where ArtTest = %s and Date BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()')
val = (varArtTest)
varArtCombo = value-from-select-query
通过这种方式,我获得了 ArtCombo 值(如果可用)。现在像这样使用这个 ArtCombo 值做一个新的插入
sql = "INSERT INTO table1 (Date, ArtSup, ArtTest, ArtCombo) VALUES (%s, %s, %s, %s)"
val = (datetime.now(tz=None), varArtSup, varArtTest, varArtCombo)
这行得通,但是进行一次查询会不会更容易或更快?如果是这样,如何实现?
【问题讨论】:
-
“但首先我想检查一下我是否有可用的“ArtCombo”" - 你能用不应该添加的记录和应该添加的记录来更新你的帖子吗?也许你可以用一个
INSERT声明来完成所有事情。 -
不,我不能,因为最后,这张表每天都有价格信息。可能会出现前一天没有的新文章。此外,数据来自不同的来源。有点复杂,但我需要先检查一下才能插入。