如何实现两个表中的每个记录都有不同的ID?

时间:2013-03-28 17:04:51

标签: python python-2.7 sqlalchemy

我有两个从基表继承的表(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())

和继承的表PersonData 如何实现每个Person和Data都有不同的id,每个id对于两个表都是唯一的? (生成id以识别数据ID的人,反之亦然)

1 个答案:

答案 0 :(得分:1)

如果您使用的是Postgresql,Firebird或Oracle,请使用独立于两个表的序列来生成主键值。否则,您需要像“id”表或类似的东西一样滚动一些手动过程 - 这可能很难以原子方式进行。

基本上如果我遇到这个问题,我会问为什么两个表确实需要像这样的唯一主键值 - 如果主键是一个自动递增的整数,则表明它没有意义。它的唯一目的是在单个表中提供唯一的密钥。