Maison >base de données >tutoriel mysql >Impossible de créer la table 'nom_table' (errno : 121) - Comment résoudre l'erreur MySQL : Impossible de créer la table, numéro d'erreur : 121

Impossible de créer la table 'nom_table' (errno : 121) - Comment résoudre l'erreur MySQL : Impossible de créer la table, numéro d'erreur : 121

PHPz
PHPzoriginal
2023-10-05 14:03:481889parcourir

Can't create table 'table_name' (errno: 121) - 如何解决MySQL报错:无法创建表,错误编号:121

Impossible de créer la table 'nom_table' (numéro d'erreur : 121) - Comment résoudre l'erreur MySQL : Impossible de créer la table, numéro d'erreur : 121, nécessite des exemples de code spécifiques

Lors de l'utilisation de la base de données MySQL, vous rencontrerez parfois une erreur problème des numéros 121, empêchant la création de la table. Ce problème provoque souvent de la frustration chez les développeurs car sans message d'erreur spécifique, il est difficile de trouver une solution. Cet article explique comment résoudre ce problème et fournit des exemples de code spécifiques.

Tout d’abord, comprenons la cause de cette erreur. L'erreur numéro 121 est généralement causée par des contraintes de clé étrangère. Lorsque vous essayez de créer une clé étrangère dans une table, si les définitions de clé primaire et de clé étrangère de la table sont en conflit, MySQL signalera une erreur et affichera "Impossible de créer la table 'nom_table' (errno : 121)". Ainsi, afin de résoudre ce problème, nous devons vérifier et corriger les contraintes de clé étrangère.

Voici les étapes et les exemples de code pour résoudre ce problème :

Étape 1 : Trouver la contrainte de clé étrangère problématique
Tout d'abord, nous devons découvrir quelle contrainte de clé étrangère de la table est à l'origine du problème. Vous pouvez utiliser la commande suivante pour trouver la table problématique :

SHOW ENGINE INNODB STATUS;

Après avoir exécuté cette commande, vous verrez les résultats contenant des informations de débogage détaillées. Dans ce résultat, vous devez trouver la ligne « Dernière impasse : », le message d'erreur spécifique sera répertorié ci-dessous. Dans le message d'erreur, « La contrainte de clé étrangère est mal formée » signifie généralement que la contrainte de clé étrangère est à l'origine du problème.

Étape 2 : Corriger les contraintes de clé étrangère
Une fois la contrainte de clé étrangère problématique trouvée, nous devons modifier la structure de la table pour la corriger. Voici quelques correctifs courants :

Méthode 1 : Vérifiez si les types de données de la clé primaire et de la clé étrangère sont cohérents
Les types de données de la clé primaire et de la clé étrangère doivent être cohérents, sinon l'erreur numéro 121 en résultera. Assurez-vous que la clé primaire et la clé étrangère ont le même type de données.

Exemple de code :

CREATE TABLE table1 (
    id INT PRIMARY KEY
);

CREATE TABLE table2 (
    id INT,
    table1_id INT,
    FOREIGN KEY (table1_id) REFERENCES table1(id)
);

Méthode 2 : Vérifiez si les champs de la clé étrangère et de la table de référence sont cohérents
Le champ référencé par la clé étrangère doit exister dans la table de référence et les types de champs doivent correspondre. Veuillez vous assurer que les noms de champs et les types de clé étrangère et de table de référence sont cohérents.

Exemple de code :

CREATE TABLE table1 (
    id INT PRIMARY KEY
);

CREATE TABLE table2 (
    table1_id INT,
    FOREIGN KEY (table1_id) REFERENCES table1(id)
);

Méthode 3 : Vérifier l'ordre de création des tables
Si vous rencontrez une situation où il existe des contraintes de clé étrangère entre plusieurs tables, vous devez vous assurer que l'ordre des tables que vous créez est correct. Veuillez créer les tables dans le bon ordre afin que les tables existantes soient référencées lors de la création de clés étrangères.

Exemple de code :

CREATE TABLE table1 (
    id INT PRIMARY KEY
);

CREATE TABLE table2 (
    id INT PRIMARY KEY,
    table1_id INT,
    FOREIGN KEY (table1_id) REFERENCES table1(id)
);

Étape 3 : Recréer la table
Après avoir terminé les étapes de réparation ci-dessus, vous pouvez recréer la table problématique. Exécutez l'instruction CREATE TABLE pour créer la table et assurez-vous qu'aucune erreur n'est à nouveau signalée.

Résumé : 
Lorsque MySQL signale l'erreur "Impossible de créer la table 'nom_table' (errno : 121)", cela est généralement dû à des contraintes de clé étrangère. Vous pouvez résoudre ce problème en vérifiant si les types de données de la clé primaire et de la clé étrangère sont cohérents, en vérifiant si les champs de la clé étrangère et de la table de référence sont cohérents et en vérifiant l'ordre dans lequel les tables sont créées. Cet article fournit des exemples de code spécifiques qui, je l’espère, vous aideront à résoudre ce problème.

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