Erreur 1452 : Impossible d'ajouter ou de mettre à jour la ligne enfant : échec de la contrainte de clé étrangère
P粉434996845
2023-08-23 13:28:57
<p>我在 MySQL Workbench 中创建了表,如下所示:</p>
<p><strong>ORDRE 表:</strong></p>
<pre class="brush:php;toolbar:false;">CREATE TABLE Ordre (
OrdreID INT NON NULL,
OrdreDato DATE PAR DEFAUT NULL,
KundeID INT PAR DÉFAUT NULL,
CONSTRAINT Ordre_pk CLÉ PRIMAIRE (OrdreID),
CONTRAINTE Ordre_fk CLÉ ÉTRANGÈRE (KundeID) RÉFÉRENCES Kunde (KundeID)
)
MOTEUR = InnoDB;</pre>
<p><strong>产品表:</strong></p>
<pre class="brush:php;toolbar:false;">CREATE TABLE Produit (
ProduktID INT NON NULL,
Description du produit VARCHAR(100) DEFAULT NULL,
Prix du produit VARCHAR(20) NULL PAR DÉFAUT,
Enhetpris INT DEFAULT NULL,
CONSTRAINT Produkt_pk CLÉ PRIMAIRE (ProduktID)
)
MOTEUR = InnoDB;</pre>
<p>和<strong>ORDRELINJE表:</strong></p>
<pre class="brush:php;toolbar:false;">CREATE TABLE Lignes de commande (
Ordre INT NON NULL,
Produit INT NON NULL,
AntallBestilt INT PAR DÉFAUT NULL,
CONSTRAINT Ordrelinje_pk CLÉ PRIMAIRE (Ordre, Produkt),
CONTRAINTE Ordrelinje_fk CLÉ ÉTRANGÈRE (Ordre) RÉFÉRENCES Ordre (OrdreID),
CONTRAINTE Ordrelinje_fk1 CLÉ ÉTRANGÈRE (Produkt) RÉFÉRENCES Produkt (ProduktID)
)
MOTEUR = InnoDB;</pre>
<p>因此,当我尝试将值插入 <code>ORDRELINJE</code> 表时,我得到:</p>
<blockquote>
<p>错误代码:1452。无法添加或更新子行:外键约束失败(<code>srdjank</code>.<code>Ordrelinje</code>,CONSTRAINT < ;code>Ordrelinje_fk</code> ; FOREIGN关键(<code>Ordre</code>)参考<code>Ordre</code>(<code>OrdreID</code>))</p>
</blockquote>
<p>
</p>
Tiré de Utilisation des contraintes de clé étrangère一个>
D'où votre erreur
错误代码:1452。无法添加或更新子行:外键约束失败
本质上意味着,您正在尝试向Ordrelinje添加一行
Ordre
La ligne correspondante (OrderID) n'existe pas dans la table code>.Vous devez d'abord insérer la ligne dans le tableau
Ordre
.