0

ベーステーブルから継承された2つのテーブルがあります( 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 が 2 つのテーブルで一意になるようにするにはどうすればよいですか? ( ID を生成するときはデータ ID を認識し、その逆も同様です)

4

1 に答える 1

1

Postgresql、Firebird、または Oracle を使用している場合は、両方のテーブルから独立したシーケンスを使用して主キー値を生成します。それ以外の場合は、「id」テーブルなどの手動プロセスをロールする必要があります。これをアトミックに行うのは難しい場合があります。

基本的に、この問題が発生した場合、なぜ2つのテーブルにそのような一意の主キー値が必要なのかを尋ねます-主キーが自動インクリメント整数である場合、それは無意味であることを示します. 唯一の目的は、単一のテーブルに一意のキーを提供することです。

于 2013-03-29T14:39:15.913 に答える