我有两个从基表继承的表(SQLALCHEMY模型)
class Base(object):
def __tablename__(self):
return self.__name__.lower()
id = Column(Integer, primary_key=True, nullable=False)
utc_time = Column(Integer, default=utc_time(), onupdate=utc_time())
datetime = Column(TIMESTAMP, server_default=func.now(), onupdate=func.current_timestamp())
和继承的表Person
和Data
如何实现每个Person和Data都有不同的id,每个id对于两个表都是唯一的? (生成id以识别数据ID的人,反之亦然)
答案 0 :(得分:1)
如果您使用的是Postgresql,Firebird或Oracle,请使用独立于两个表的序列来生成主键值。否则,您需要像“id”表或类似的东西一样滚动一些手动过程 - 这可能很难以原子方式进行。
基本上如果我遇到这个问题,我会问为什么两个表确实需要像这样的唯一主键值 - 如果主键是一个自动递增的整数,则表明它没有意义。它的唯一目的是在单个表中提供唯一的密钥。