Maison >base de données >tutoriel mysql >Pourquoi ma contrainte de clé étrangère est-elle mal formée ?

Pourquoi ma contrainte de clé étrangère est-elle mal formée ?

DDD
DDDoriginal
2025-01-19 05:45:10404parcourir

Why is My Foreign Key Constraint Incorrectly Formed?

Erreur de contrainte de clé étrangère de base de données : incompatibilité de type et de longueur de données

Dans les relations de clé étrangère entre les tables, l'erreur « La contrainte de clé étrangère est mal formée » peut être provoquée par des types de données et des longueurs de colonnes impliquées incohérentes.

Pour résoudre cette erreur, veuillez vous assurer que les conditions suivantes sont remplies :

  1. Correspondance du type de données : Le type de données de la colonne de clé étrangère (IDFromTable1) dans le tableau 2 doit être le même que le type de données de la colonne référencée (ID) dans le tableau 1. Dans cet exemple, les deux colonnes sont spécifiées comme type CHAR. S'ils sont de types différents (par exemple, INT ou VARCHAR), la contrainte de clé étrangère n'a aucun effet.
  2. Longueur égale : Si les deux colonnes sont des types de données caractère (CHAR/VARCHAR), elles doivent également avoir la même longueur (nombre de caractères). Dans l'exemple donné, si IDFromTable1 est défini comme CHAR(5) et ID est défini comme CHAR(10), la création de la contrainte de clé étrangère échouera avec une erreur « Malformed ».

En résolvant ces problèmes et en garantissant que les colonnes de clé étrangère et de référence ont des types et des longueurs de données correspondants, la relation de clé étrangère peut être établie correctement, permettant l'opération de suppression en cascade attendue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn