我正在尝试编写一个SQL查询,以便在运行脚本时将行插入到表中。我能够在复制数据时使其正常工作,但无法设置插件以确定记录是否唯一。
我尝试过以下这些主题:
Most efficient way to do a SQL 'INSERT IF NOT EXISTS'
Python MySQLdb / MySQL INSERT IGNORE & Checking if Ignored
目前,我可以让系统添加所有记录,但由于在数据库中运行脚本的频率正在填充相同的记录。这是我目前的代码:
for post in r.get_subreddit("listentothis").get_new(limit=5):
if 'youtube.com' in post.url or 'youtu.be' in post.url:
print(str(post.title))
print(str(post.url))
sql = """INSERT INTO listentothis2(title,url) VALUES ('%s', '%s') WHERE NOT EXISTS (SELECT 1 FROM listentothis2 WHERE url = '%s') """ % (post.title, post.url, post.url)
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
我也尝试过:
sql = """INSERT IGNORE INTO listentothis2(title,url) VALUES ('%s', '%s') """ % (post.title, post.url)
但是,这会添加3条最新记录,无论它们是否已经提交到数据库。非常感谢任何帮助!