Postgresql postgres错误:在表上插入或更新;xxxxx";违反外键约束“;xxxxx";
你好 我有一个主表BASECOMPANYDATA,其中BASECOMPANYDATA作为主键。这是天生的 2其他表格客户和产品公司。现在我有了我想要的表格联系人 由于客户和产品公司将有0个或更多用户,因此希望与其他2个用户连接 更多联系人。因此,我在CONTACTS中创建了一个FK(BaseCompanyID)并连接到 BASECOMPANYDATA主键(BaseCompanyDataID)。但当我尝试为插入联系人时 存在于CUSTOMERS I中的记录出现以下错误: 错误:表“xxxxx”上的插入或更新与“xxxxx”中的外键冲突 详细信息:表“BaseCompanyData”中不存在键(BaseCompanyDataID)=(17)。 此ID存在于上述继承表(BaseCompanyData)中。 有人能解释为什么会这样吗 提前谢谢 PS:我有4张桌子: 1.BASECOMPANYDATA,其中BaseCompanyDataID为主键和一些其他字段。 2.从上表继承的客户,因此它将CustomerID作为主键,并具有BASECOMPANYDATA表的字段,即BaseCompanyDataID等。 3.ProductCompanys继承自BASECOMPANYDATA,因此其字段ProductCompanyID为PK,继承表的字段如BaseCompanyDataID等。Postgresql postgres错误:在表上插入或更新;xxxxx";违反外键约束“;xxxxx";,postgresql,inheritance,Postgresql,Inheritance,你好 我有一个主表BASECOMPANYDATA,其中BASECOMPANYDATA作为主键。这是天生的 2其他表格客户和产品公司。现在我有了我想要的表格联系人 由于客户和产品公司将有0个或更多用户,因此希望与其他2个用户连接 更多联系人。因此,我在CONTACTS中创建了一个FK(BaseCompanyID)并连接到 BASECOMPANYDATA主键(BaseCompanyDataID)。但当我尝试为插入联系人时 存在于CUSTOMERS I中的记录出现以下错误: 错误:表“xxxxx”上的
4.联系人ID为PK,BaseCompanyDataID为FK。我尝试用两种不同的方式连接桌面联系人。A.联系人->与客户的BaseCompanyID->BaseCompanyDataID和联系人->与ProductCompanys的BaseCompanyID->BaseCompanyDataID b。联系人->BaseCompanyID与BASECOMPANYDATA->BaseCompanyDataID结果是相同的错误。关于如何使用继承创建FK的任何答案(如果有)。提前感谢您阅读了继承文档了吗?尤其是
5.8.1。注意事项
部分
类似地,如果指定cities.name引用其他一些表,则此约束不会自动传播到大写字母。在这种情况下,您可以通过手动将相同的引用约束添加到大写字母来解决此问题
编辑:
继承在Postgsresql中只实现了一半。如果要保存键入内容,请在创建表中签出类似于的
在你的第一个问题中,我看到推荐人和我说的完全一样。现在你有问题了?嗯
这是我从您的重新发布中获得的伪sql:
base
baseid
customers(base)
baseid
id
products(base)
baseid
id
contacts
id
baseid references base(baseid)
就用老式的好方法去做吧
base
id
customers
base_id references base(id)
id
products(base)
base_id references base(id)
id
contacts
id
base_id references base(id)
如果您在问题中添加了一些换行符,或者是表定义中的一个片段,那就太好了。这是我在SQL Server中开始的方式,但我认为使用PostgreSQL的继承是很好的。看来我将回到我在SQL Server中所做的事情。继承有很多问题。