Maison  >  Article  >  base de données  >  modification du type de table mysql

modification du type de table mysql

WBOY
WBOYoriginal
2023-05-23 14:03:131522parcourir

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.

  1. Vue d'ensemble

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 transactionnelle
  1. Modifier une table non transactionnelle en table transactionnelle est une opération relativement courante. Ce qui suit décrit comment modifier une table MyISAM en table InnoDB.

1) 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 transactionnelle
  1. Dans les applications réelles, la modification d'une table transactionnelle à une table non transactionnelle est relativement rare. Ce qui suit décrit comment modifier une table InnoDB en table MyISAM.

1) 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

(

...

) ENGINE=MyISAM;

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.

Conclusion
  1. Modifier le type de table MySQL est une opération relativement courante. Dans les applications réelles, différents types de tables doivent être sélectionnés en fonction des besoins réels. Qu'elle soit modifiée d'une table non transactionnelle à une table transactionnelle ou d'une table transactionnelle à une table non transactionnelle, le verrouillage de la table et la sauvegarde des données sont nécessaires. Cet article présente les méthodes de base de modification des types de tables MySQL et espère être utile aux lecteurs.

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