使用python变量INSERT WHERE NOT EXISTS子句

时间:2016-05-28 20:20:01

标签: python mysql praw

我正在尝试编写一个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条最新记录,无论它们是否已经提交到数据库。非常感谢任何帮助!

0 个答案:

没有答案