【发布时间】:2011-01-21 18:14:34
【问题描述】:
我在谷歌上搜索过,但无法找到这个看似简单的问题的答案。
我有两个关系,一个客户和一个订单。每个订单都与单个客户相关联,因此与客户表具有 FK 关系。客户关系只存储客户姓名,我对客户表设置了唯一约束,禁止重复名称。
假设我创建了一个新的订单实例并为该订单设置了一个客户。比如:
order_instance.customer = Customer("customer name")
当我保存订单实例时,如果客户表中已经存在同名客户,SqlAlchemy 会报错。
如果具有此名称的客户尚不存在,或者只是忽略(甚至更新)客户关系,我如何指定 SqlAlchemy 插入到客户表中?我真的不想每次都检查是否已经存在具有某个名称的客户...
----编辑--- Customer 表上设置了唯一约束,因此没有两个客户可以具有相同的名称。 单调,使用您当前的实现,抛出一个 IntegrityError。 如果已存在具有此名称的客户,则返回该客户实例。否则,返回一个新的 Customer 实例。
似乎 SqlAlchemy,无论客户是否已经存在,都在尝试向客户表执行 SQL 插入语句。 也许我的级联设置不正确?
【问题讨论】: