1452 - 하위 행을 추가하거나 업데이트할 수 없습니다.
데이터베이스(MariaDB 사용)에서 새 행을 삽입하는 데 문제가 있습니다.
다음과 같은 오류가 있습니다.
하위 행을 추가하거나 업데이트할 수 없습니다. 외부 키 제약 조건이 실패합니다.
DbName_boutique
.Commande
제약 조건bdc_managed_by___fk
외부 키(bdc_managed_by_user_id
) 참조utilisateur
(utilisateur_id
) 명령어에 삽입(lien_devis, lien_bdc, end_devis, bdc_status, devis_created_by_user_id, bdc_managed_by_user_id, enterprise_id)
컨트롤러에 다음 코드가 있습니다.
$unknow = NULL;
$end_date = date('d/m/Y', strtotime("+1 month"));
$user = checkConnected($bdd);
Commande::create($bdd, $new_full_modele_devis_path, $new_full_modele_devis_path, $end_date, 0, $user->getId(), $user->getId(), $entreprise->getId());
$unknown은 나중에 다른 컨트롤러에서 사용한 값입니다.
내 테이블 "커맨드"는 다음과 같이 구성됩니다.
create table dBName.Commande
(
commande_id int not null
primary key,
lien_devis varchar(255) null,
lien_bdc varchar(255) null,
end_devis datetime null,
bdc_status int null,
devis_created_by_user_id mediumint unsigned null,
bdc_managed_by_user_id mediumint unsigned null,
entreprise_id smallint(5) unsigned null,
constraint bdc_managed_by___fk
foreign key (bdc_managed_by_user_id) references dBName.utilisateur (utilisateur_id),
constraint devis_created_by___fk
foreign key (devis_created_by_user_id) references dBName.utilisateur (utilisateur_id),
constraint entreprise___fk
foreign key (entreprise_id) references dBName.entreprise (entreprise_id)
);
나중에 사용자 테이블도 있습니다.
create table dBName.utilisateur
(
utilisateur_id mediumint unsigned auto_increment
primary key,
utilisateur_password varchar(255) null,
utilisateur_nom varchar(50) null,
utilisateur_prenom varchar(50) null,
utilisateur_email varchar(255) null,
utilisateur_telephone varchar(10) null,
utilisateur_fax varchar(25) null,
is_active tinyint(1) null
)
charset = utf8mb4;
엔터프라이즈:
create table dBName.entreprise
(
entreprise_id smallint(5) unsigned auto_increment
primary key,
entreprise_nom varchar(100) null,
entreprise_siret char(14) null,
entreprise_telephone char(10) null,
entreprise_salesforce_number varchar(100) null,
entreprise_compte_client varchar(100) null,
entreprise_raison_sociale varchar(100) null,
entreprise_APE varchar(25) null,
entreprise_image_link varchar(255) null,
adresse_id mediumint unsigned null,
constraint FK_entreprise_adresse_id
foreign key (adresse_id) references dBName.adresse (adresse_id)
)
charset = utf8mb4;
왜 내가 오류를 범하는지 이해할 수 없습니다...그리고 약간의 도움이 저에게 많은 도움이 될 수 있습니다.감사해요.
인Commande
표, 열bdc_managed_by_user_id
에 매핑됩니다.utilisateur_id
의 열.utilisateur
외부 키 참조를 통한 테이블입니다.
즉, 행을 삽입할 때마다Commande
테이블, 해당bdc_managed_by_user_id
그 중 하나여야 합니다.utilisateur_id
에 있는.utilisateur
표. 그렇지 않으면 위와 같은 오류가 발생합니다.
이를 외부 키 제약 조건이라고 하며, 이 예제를 통해 작동 방식을 설명할 수 있습니다.
언급URL : https://stackoverflow.com/questions/54927223/1452-cannot-add-or-update-a-child-row
'programing' 카테고리의 다른 글
파일 또는 어셈블리 'Oracle'을 로드할 수 없습니다.DataAccess' 또는 해당 종속성 중 하나입니다.잘못된 형식의 프로그램을 로드하려고 했습니다. (0) | 2023.07.29 |
---|---|
jquery 중지 하위 이벤트 트리거링 (0) | 2023.07.29 |
ASP.net EF Codefirst Data Annotations를 사용하여 SQL Server에서 열을 varchar(max)로 설정하려면 어떻게 해야 합니까? (0) | 2023.07.29 |
Spring Data Rest - 내포된 특성별 정렬 (0) | 2023.07.29 |
바디에 설정된 CSS3 그레이디언트 배경은 늘어나지 않고 반복됩니까? (0) | 2023.07.29 |