web-dev-qa-db-fra.com

Comment obtenir une requête qui recréerait une table SQL dans PHPMyAdmin

J'ai la table sur le serveur MySQL et voudrais obtenir le code SQL qui recréerait la table.

Comment puis-je obtenir la requête pour recréer la table SQL?

18
Borut Flis

mysqldump peut le faire - http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

Vous pouvez l'utiliser comme ceci:

mysqldump [databasename] [tablename] > mysqltablesql.sql
11
liamgriffiths

MySQL supporte SHOW CREATE TABLE pour renvoyer le code SQL utilisé pour créer une table.

De leurs docs:

mysql> SHOW CREATE TABLE t;
CREATE TABLE t (
  id INT(11) default NULL auto_increment,
  s char(60) default NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM

Cela peut être utile si vous avez juste une connexion à la base de données, par opposition à une CLI sur le serveur. Si vous avez une CLI, utilisez mysqldump comme recommandé par liamgriffiths. 

56
J.J.

Si vous utilisez phpMyAdmin, sélectionnez une table puis cliquez sur l'onglet "Exporter". Un des types de sortie est SQL. Cette sélection générera un script SQL pour créer la table et insérer toutes les données actuellement présentes dans la table. Assurez-vous que sous l'option de vidage des données, sélectionnez "Structure et données".

7
Casey

base de données mysqldump [OPTIONS] [tables]> backup-file.sql

Si vous ne donnez pas de tables ou n'utilisez pas les bases de données --databases ou --all-database, la ou les bases de données entières seront vidées.

Vous pouvez obtenir une liste des options supportées par votre version de mysqldump en exécutant mysqldump --help.

Notez que si vous exécutez mysqldump sans --quick ou --opt, mysqldump chargera l'intégralité du jeu de résultats en mémoire avant de vider le résultat. Ce sera probablement un problème si vous videz une grande base de données. 

2
Ashwin A

Si vous avez accès à phpMyAdmin, vous pouvez obtenir ce code dans l'onglet Exporter de la table souhaitée.

Sélectionnez SQL puis assurez-vous que vous exportez "Structure" (code "CREATE table") et "Données" (code "INSERT") avec le type d'exportation défini sur "INSERT".

0
abarrington

J'irais avec @liamgriffiths proposition de mysqldump, mais vous pouvez également essayer create table <new-table-name> like <old-table-name> suivi de insert into <new-table-name> select * from <old-table-name>

0
sa125