sql - [附Pdb结果]表B中的约束有效表A中的“匹配查询不存在”-Python / Django
问题描述
我有几个表如下,它们是根据一个创建的third-party system
,应用程序也在这个系统(oracle)的数据库下运行。
约束在A中失败,但Table
它适用于Table B
Table B
b.c.d.e.name
None
Table A
a.b.c.d.e.name
class A(models.Model):
a_id = models.IntegerField(primary_key=True)
b = models.OneToOneField('B', models.DO_NOTHING, related_name='+')
class B(models.Model):
b_id = models.IntegerField(primary_key=True)
c = models.OneToOneField('C', models.DO_NOTHING, related_name='+')
class C(models.Model):
c_id = models.IntegerField(primary_key=True)
d = models.OneToOneField('D', models.DO_NOTHING, related_name='+')
class D(models.Model):
d_id = models.IntegerField(primary_key=True)
e = models.OneToOneField('E', models.DO_NOTHING, related_name='+')
class E(models.Model):
e_id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=64)
pdb的结果如下:
(Pdb) B.objects.using('third_party_db').get(c__d__e__name="Dog")
*** general.models.B.MultipleObjectsReturned: get() returned more than one B -- it returned 1673!
(Pdb) A.objects.using('third_party_db').get(b__c__d__e__name="Dog")
*** general.models.A.DoesNotExist: A matching query does not exist.
(Pdb) A.objects.using('third_party_db').get(b__c__pk=1)
*** general.models.A.DoesNotExist: A matching query does not exist.
(Pdb) A.objects.using('third_party_db').get(b__f__pk=1)
*** general.models.A.MultipleObjectsReturned: get() returned more than one A -- it returned 18!