在表上插入或更新违反外键约束TelephoneContact

问题描述

客观

在创建--- title: "Probabilidad" output: bookdown::html_document2: default --- ```{r fig.cap="$\\lambda$"} plot(cars) ``` It doesn't matter how complicated the math expression is: ```{r fig.cap="$\\frac{\\sum_{i=1}^n x_i}{n}$"} plot(cars) ``` 时在import { Controller } from 'stimulus' export default class extends Controller { static targets = [ 'foo',] connect() { const fooValue = this.fooTarget.value console.log(this.fooValue) # 7 this.someFunction() } someFunction(){ console.log(this.fooValue) # undefined } } 表中创建。

发生了什么

我有3个表,分别称为telephonesclientclients。在此图像之后,我们可以看到contacts可以是telephones和/或owner_id。但是,当我尝试创建contacts.id时,会创建clients.id,但没有在client表中插入数据。但是显示此错误

client

Relationship

迁移

telephones

电话型号

{
  "error": "insert or update on table \"telephones\" violates foreign key constraint \"TelephoneContact\""
}

解决方法

无法 按照说明创建电话表。您正在尝试将owner_id列定义为contacts表的FK和clients表的FK。 Postgres无法做到这一点。该列可以是任一表的FK,但必须始终是指定表的FK。我不知道您的ORM如何处理此问题,但看起来它会导致联系人联系失败(实际表ddl将显示定义)。然后,您将其插入客户端时会收到FK违规,因为电话值不存在联系人。

有3种解决方案:

  1. 在电话中添加2个fk列,每个表添加1个。然后,您必须确定其中一个是否必须为null或是否都可以填充它们。
  2. 反转FK的方向,以便客户和联系人都可以通过FK来拨打电话。毫无困难,这意味着他们俩都可以指向同一部​​电话。
  3. 只需将电话号码迁移到客户和联系人表 并完全放下电话桌。毕竟是什么 分离电话号码的商业目的;生意如何 电话号码与电子邮件不同。

如果电话号码本身没有重要的业务流程,我会选择#3。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...