SQLAlchemy如果唯一键存在则添加upd

2024-09-27 02:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用SQLAlchemy和MySQL数据库来保存scrapy的数据。你知道吗

如果唯一键(url)已经存在,我很难理解并找到更新数据的解决方案。我已经找到了一些解决办法,但我没有找到一个方法包括它。你知道吗

我已经尝试了很多解决方案,但不知道如何整合它们:

def process_item(self, item, spider):
    session = self.Session()
    quotedb = QuoteDB()
    quotedb.titel = item["titel"]
    quotedb.description = item["description"]
    quotedb.url = item["url"]
    quotedb.last_updated = item["last_updated"]

    try:
        session.add(quotedb)
        session.commit()
    except:
        session.rollback()
        raise
    finally:
        session.close()

    return item

当前我得到了重复的条目错误:

IntegrityError: (pymysql.err.IntegrityError) (1062, u"Duplicate entry 'https://www.example.com/quote.html' for key 'url'")

如果url(唯一键)已经存在,我想用新值更新/替换item.titelitem.descriptionitem.last_updated

在其他情况下,通常应添加。你知道吗


Tags: 数据self数据库urlsqlalchemysessionmysqldescription

热门问题