Maison >développement back-end >tutoriel php >MySQL Comment dupliquer une table – Conseils rapides

MySQL Comment dupliquer une table – Conseils rapides

WBOY
WBOYoriginal
2024-08-21 21:03:151073parcourir

Récemment, j'ai dû faire face à certaines limitations de mon fournisseur de base de données qui ne prend pas en charge le renommage des tables. J'ai donc dû dupliquer un tableau manuellement.

La base de données de ma plateforme SaaS est hébergée sur Planetscale. La société fournit une base de données sans serveur compatible MySQL. Grâce à sa nature sans serveur, vous pouvez bénéficier de la puissance du partitionnement horizontal, des modifications de schéma non bloquantes et de nombreuses fonctionnalités de base de données plus puissantes sans avoir à les implémenter. Et une excellente expérience de développeur.

D'un autre point de vue, vous devez faire face à certaines contraintes concernant les changements de schéma. Ces limitations sont nécessaires pour garantir la cohérence dans un environnement fragmenté.

Ils ont fait beaucoup de progrès depuis que je suis devenu client (il y a presque deux ans), comme le support de la contrainte Foreign Key : https://planetscale.com/docs/concepts/foreign-key-constraints

Renommer une table

Inspector est une application Laravel. En utilisant les migrations Laravel, je pourrais utiliser la fonction rename pour simplement changer le nom d'une table :

Schema::rename('from', 'to');

Planetscale ne prend pas en charge le renommage des tables de manière native. J'ai donc dû trouver une solution de contournement pour accomplir la tâche.

Pour être honnête, renommer une table est une opération assez rare. Pour moi, c'était à cause d'un chevauchement de noms entre les entités "Projets" et "Applications". J'ai dû renommer Projets -> Candidatures.

Comment dupliquer une table dans MySQL

Il existe deux façons de dupliquer une table dans MySQL.

Dupliquer la structure du tableau

Vous pouvez dupliquer uniquement la structure de la table (colonnes, clés, index, etc.) sans données, en utilisant CREATE TABLE … LIKE :

CREATE TABLE applications LIKE projects;

Le résultat est la création de la table des applications avec exactement la même structure que la table des projets d'origine, mais SANS données.

Pour importer également des données, vous pouvez exécuter une deuxième instruction comme INSERT INTO … SELECT :

INSERT INTO applications SELECT * FROM projects;

Faites attention à exécuter cette instruction sur de grandes tables car cela peut prendre beaucoup de temps et de ressources serveur.

Définition de colonne en double uniquement

La deuxième option consiste à dupliquer uniquement les définitions de colonnes et à importer les données dans une seule instruction en utilisant CREATE TABLE … AS SELECT :

CREATE TABLE applications AS SELECT * FROM projects;

La nouvelle table des applications hérite uniquement des définitions de colonnes de base de la table des projets. Il ne duplique pas les contraintes de clé étrangère, les index et les définitions d'auto_increment.

Cette option pourrait être utile lorsque vous avez les noms d'index et de clés liés au nom de la table. En changeant le nom de la table, vous devez remplacer les noms des contraintes. Vous feriez mieux de ne pas les importer du tout et de tout recommencer.

Ressources

La base de données est toujours un sujet brûlant pour les développeurs, à tout moment. Vous pouvez trouver d’autres ressources techniques sur le blog. Voici les articles les plus populaires sur le sujet :

  • Résolu - Violation de la contrainte d'intégrité
  • Enregistrez 1 million de requêtes avec le chargement impatient de Laravel
  • Comment faire évoluer une base de données SQL
  • Résolu – Délai d'attente du verrouillage MySQL dépassé à l'aide des files d'attente et des tâches Laravel

Nouveau comme inspecteur ? Surveillez votre candidature gratuitement

Inspector est un outil de surveillance de l'exécution de code spécialement conçu pour les développeurs de logiciels. Vous n'avez pas besoin d'installer quoi que ce soit au niveau du serveur, installez simplement le package composer et vous êtes prêt à partir.

Contrairement à d'autres plates-formes complexes tout-en-un, Inspector est super simple et compatible PHP. Vous pouvez essayer notre package Laravel ou Symfony.

Si vous recherchez une automatisation efficace, des informations approfondies et la possibilité de transférer des alertes et des notifications dans votre environnement de messagerie, essayez Inspector gratuitement. Enregistrez votre compte.

Ou apprenez-en plus sur le site : https://inspector.dev

MySQL How To Duplicate A Table – Fast Tips

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
Article précédent:Crochets de propriété PHPArticle suivant:Crochets de propriété PHP