只有在数据库还没有的情况下,我才能发送到数据库中



我有以下问题。我想发送";my_url";仅当"0"为dbURLS时;my_url";尚未在数据库URLS中。我在Python中使用了两种方法:

def exist_url(self, my_url): # Returns true/false if my_urls is in the db
query = """
SELECT url FROM URLS
WHERE url=(%s)
"""
self.cursor.execute(query, my_url)
return self.cursor.fetchone()
def insert_url(self, my_url): #sinserts my_url to db
query = """
INSERT INTO URLS
VALUES (%s)
"""
self.cursor.execute(query, my_url)
self.connection.commit()

我能把这两个函数合为一吗?即在一个查询中检查my_urls是否已经存在于URLS中,如果不插入?感谢

您可以使用不存在逻辑的插入:

def insert_url(self, my_url): #sinserts my_url to db
query = """
INSERT INTO URLS (url)
SELECT %s
WHERE NOT EXISTS (SELECT 1 FROM URLS WHERE url = %s)
"""
self.cursor.execute(query, (my_url, my_url,))
self.connection.commit()

相关内容

最新更新