我有一堂这样的课。我的目标是每次遇到重复链接时更新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/