python - 如果我需要自动递增 ID 但想要检查另一个字段上的重复项,如何定义模型?

标签 python mysql sqlalchemy

我有一堂这样的课。我的目标是每次遇到重复链接时更新last_seen_date

我已经定义了 id 列,因为它将用作另一个表的外键。这是自动递增的。真正的重复项是 url

class Link(Base):
    __tablename__ = 'links'
    id = Column(BigInteger, primary_key=True, unique=True)
    url = Column(String(500), nullable=False, index=True, unique=True)
    last_seen_date = Column(DateTime, nullable=False, default=datetime.datetime.now())

我想执行INSERT...ON DUPLICATE KEY UPDATE,但我不知道如何定义字段来完成此操作。按照我现在的方式,我永远无法重复,因为组合主键的 ID 中始终有一个自动递增部分。

url 重复时,我需要如何更改定义才能允许 ON DUPLICATE KEY UPDATE 语句起作用,我可以更改 last_seen_date

最佳答案

ALTER TABLE `tablename` ADD UNIQUE INDEX `ttt_url` (`url`);

ttt_xxx 将是我出于习惯而使用的键的名称。它将允许插入/重复,您可以更新日期/时间戳并保留您的原始 pk

关于python - 如果我需要自动递增 ID 但想要检查另一个字段上的重复项,如何定义模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31017523/

相关文章:

mysql - 如何限制每个特定结果组的 SQLite 结果?

python - SQLAlchemy 支持 H2DB 吗?

python - Nosetest初始化错误

mysql - Navicat utf8 无法在 mysql 数据库上运行

python - 如何从两个列表中删除特定独立游戏的某些元素的元素?

MYSQL NOT IN 查询使用 DISTINCT()

python - 有没有办法将Spark-Sql与sqlalchemy连接

python - AmbiguousForeignKeysError : Couldn't determine join condition between parent/child tables on relationship User. posts - 多个外键路径

python - 在 Python 的双重嵌套函数中访问变量

python - 如何选择只有正值的列?