我知道检查行是否存在的最快方法是检查,但在插入新数据时使用INSERT IGNORE。这对我的应用来说非常优秀。但是,我需要能够检查是否忽略了插入(或者相反,如果实际插入了行)。
我可以使用try / catch,但这不是很优雅。希望有人可能有一个更清洁,更优雅的解决方案。
答案 0 :(得分:2)
当然,我发布问题后的最终搜索会产生结果。
mysql - after insert ignore get primary key
但是,这仍然需要第二次访问数据库。我很想知道用一个查询是否有一种干净的pythonic方法。
query = "INSERT IGNORE ..."
cursor.execute(query)
# Last row was ignored
if cursor.lastrowid == 0:
这会执行INSERT IGNORE查询,如果插入被忽略(重复),则lastrowid将为0.