假设我有两张桌子,foo 和 bar。两者都有主键。我想在 SQLAlchemy 中设置它,以便 foo.id 和 bar.id 的组合是唯一的。我该怎么做?
我尝试添加另一个只包含主键并在 foo 和 bar 中有外键的表,如下所示:
class foo(Base):
__tablename__ = 'foo'
id = Column(Integer, ForeignKey('primary_keys.id'), primary_key=True)
class bar(Base):
__tablename__ = 'bar'
id = Column(Integer, ForeignKey('primary_keys.id'), primary_key=True)
class primary_keys(Base):
__tablename__ = 'primary_keys'
id= Column(Integer, primary_key=True)
但它给了我这个错误:
FlushError:实例具有 NULL 身份密钥。如果这是一个自动生成的值,请检查数据库表是否允许生成新的主键值,以及映射的 Column 对象是否配置为期望这些生成的值。还要确保此 flush() 不会在不适当的时间发生,例如在 load() 事件中。
对于我正在尝试做的事情,是否有更好的解决方案?
编辑:我正在使用 sqlite 数据库。