【发布时间】:2011-04-20 11:30:38
【问题描述】:
我有一个具有以下声明性定义的表:
class Type(Base):
__tablename__ = 'Type'
id = Column(Integer, primary_key=True)
name = Column(String, unique = True)
def __init__(self, name):
self.name = name
“名称”列具有唯一约束,但我可以做到
type1 = Type('name1')
session.add(type1)
type2 = Type(type1.name)
session.add(type2)
因此,可以看出,唯一约束根本没有被检查,因为我已将 2 个具有相同名称的对象添加到会话中。
当我执行session.commit() 时,我得到一个 mysql 错误,因为约束也在 mysql 表中。
sqlalchemy 是否有可能提前告诉我我无法制作或识别它并且不插入具有相同“名称”列的 2 个条目? 如果没有,我是否应该将所有现有名称保留在内存中,以便在创建对象之前检查它们是否存在?
【问题讨论】:
标签: sqlalchemy unique