MySQL est un système de gestion de bases de données relationnelles open source. Il propose une variété de types de tables pour répondre à différents besoins. Dans les applications pratiques, il est parfois nécessaire de modifier le type de table. Cet article explique comment modifier le type de table MySQL.
Les types de tables MySQL sont principalement divisés en InnoDB, MyISAM, MEMORY, CSV et autres types. InnoDB est le moteur de stockage par défaut de MySQL. Chaque moteur de stockage a ses avantages et ses inconvénients, et il doit être sélectionné en fonction des besoins réels des applications réelles.
Dans MySQL, il existe généralement deux situations lors de la modification du type de données d'une table :
1) Modification d'une table non transactionnelle (telle que MyISAM) vers une table transactionnelle (telle qu'InnoDB) ; une table transactionnelle (telle qu'InnoDB) est modifiée en une table non transactionnelle (telle que MyISAM).
Les méthodes de modification dans les deux situations sont légèrement différentes, qui seront présentées en détail ci-dessous.
Modifier d'une table non transactionnelle à une table transactionnelle1) Vérifiez le type de la table actuelle
Vous pouvez utiliser l'instruction DESCRIBE pour vérifier les informations de base de la table, telles que les informations de champ de la table, les informations d'index, etc. Exécutez la commande suivante :
DESCRIBE tablename;
où tablename est le nom de la table à interroger.
2) Sauvegarder les données
Avant de modifier le type du tableau, vous devez sauvegarder les données du tableau. Vous pouvez utiliser la commande mysqldump pour sauvegarder les données de la table dans un fichier. Par exemple, pour sauvegarder la table test_table de la bibliothèque testDB dans le fichier test_table.sql, vous pouvez exécuter la commande suivante :
mysqldump testDB test_table > test_table.sql
3) Verrouiller la table
Avant de modifier le type de table , vous devez verrouiller la table. Dans MySQL, un verrou en écriture est requis pour exécuter l'instruction ALTER TABLE. Par conséquent, avant d'exécuter l'instruction ALTER TABLE, vous devez verrouiller la table pour empêcher d'autres utilisateurs de la modifier.
Vous pouvez verrouiller la table via la commande suivante :
LOCK TABLES tablename WRITE;
où tablename est le nom de la table à modifier.
4) Modifier le type de table
Exécutez la commande suivante pour modifier le type de table de MyISAM vers InnoDB :
ALTER TABLE tablename ENGINE=InnoDB;
où tablename est le nom de la table à modifier.
5) Déverrouillez la table
Une fois la modification terminée, vous devez déverrouiller la table. Exécutez la commande suivante :
UNLOCK TABLES;
À ce stade, la table MyISAM a été modifiée avec succès en table InnoDB.
Modification d'une table transactionnelle à une table non transactionnelle1) Sauvegarder les données
Avant de modifier le type de tableau, vous devez également sauvegarder les données du tableau. La méthode de sauvegarde est la même que précédemment et ne sera pas répétée ici.
2) Créer une nouvelle table
Les méthodes de stockage des deux types de table étant différentes, la table InnoDB ne peut pas être modifiée en table MyISAM en modifiant directement la table. Par conséquent, vous devez d'abord créer une nouvelle table MyISAM et importer les données dans la table.
Vous pouvez créer une nouvelle table MyISAM via la commande suivante :
CREATE TABLE new_table
(...
où, new_table est le nom de la table à créer,... est le champ informations dans la nouvelle table et informations sur les contraintes.
3) Importer des données dans la nouvelle table
Vous pouvez utiliser l'instruction INSERT INTO pour insérer des données de la table d'origine dans la nouvelle table. Par exemple, pour insérer des données de la table test_table dans la table new_table, vous pouvez exécuter la commande suivante :
INSERT INTO new_table SELECT * FROM test_table;
4) Renommer la table
Une fois l'importation des données terminée, vous devez pour renommer la nouvelle table en Montre originale. Vous pouvez exécuter la commande suivante :
RENAME TABLE test_table TO old_table, new_table TO test_table;
où old_table est l'ancien nom de la table et test_table est le nouveau nom de la table.
À ce stade, la table InnoDB a été modifiée avec succès en table MyISAM.
ConclusionCe 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!