¿Cómo generar un script de creación de tabla para una tabla existente en phpmyadmin?

246

¿Cómo puedo generar un script de creación de tabla para una tabla existente en phpmyadmin?

Marko Cakic
fuente

Respuestas:

513

Use la siguiente consulta en la pestaña sql:

SHOW CREATE TABLE tablename

Para ver la consulta completa Existe este hipervínculo llamado + Opciones arriba, seleccione Textos completos

Karan Punamiya
fuente
1
¿Hay alguna manera de especificar qué base de datos, por ejemplo, si tiene varias bases de datos que contienen el mismo nombre de tabla? ¿O eso no es posible?
Davos
66
@Davos usa esto, muestra crear tabla database_name.tablename.
Fahad Anjum
Gracias, esto es lo que quería
astrosixer el
¿Hay argumentos que puedo agregar para exportarlo a un archivo?
Dan
40

Ejecutar SHOW CREATE TABLE <table name>consulta

Devastar
fuente
44
+1. Nota: si ejecuta una consulta desde la línea de comandos, ;se requiere al final.
Retenido el
15

Mysqladmin puede hacer el trabajo de guardar el script de creación de tabla.

Paso 1, crea una tabla, inserta algunas filas:

create table penguins (id int primary key, myval varchar(50))
insert into penguins values(2, 'werrhhrrhrh')
insert into penguins values(25, 'weeehehehehe')
select * from penguins

Paso 2, usa el comando de volcado mysql:

mysqldump --no-data --skip-comments --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql

Paso 3, observe la salida en penguins.sql:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `penguins`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `penguins` (
  `id` int(11) NOT NULL,
  `myval` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

La salida está abarrotada por una serie de tokens de condición de ejecución arriba y abajo. Puede filtrarlos si no los quiere en el siguiente paso.

Paso 4 (Opcional), filtre los tokens adicionales de condición de ejecución de esta manera:

mysqldump --no-data --skip-comments --compact --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql

Que produce la salida final:

eric@dev /home/el $ cat penguins.sql

DROP TABLE IF EXISTS `penguins`;
CREATE TABLE `penguins` (
  `id` int(11) NOT NULL,
  `myval` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Eric Leschinski
fuente
9

Ejecutar consulta es pestaña sql

MOSTRAR CREAR TABLA tableName

Haga clic en

+ Opciones -> Elegir textos completos -> Haga clic en Ir

Copie la consulta Crear tabla y péguela donde desee crear una nueva tabla.

Samir Mangroliya
fuente
Gracias por el consejo para mostrar el texto completo, no estaba seguro de por qué se estaba cortando hasta que vi su respuesta.
Dymas
@Dymas tienes que elegir textos completos para mostrar la consulta completa. He hecho lo mismo para ver la consulta completa.
Samir Mangroliya
7

Consulta information_schema.columns directamente:

select * from information_schema.columns 
where table_name = 'your_table' and table_schema = 'your_database'
Eric Leschinski
fuente
2

Esta puede ser una respuesta tardía. Pero puede ayudar a otros. Es muy simple en MY SQL Workbench (estoy usando Workbench versión 6.3 y My SQL Version 5.1 Community edition): haga clic derecho en la tabla para la que desea crear el script, seleccione la opción 'Copiar al portapapeles -> Crear declaración'. Simplemente pegue en cualquier editor de texto que desee obtener el script de creación.

Narasimman V
fuente
0

Usando la función PHP.

Por supuesto, la función de consulta ($ this-> model) debe cambiar a la suya.

/**
 * Creating a copy table based on the current one
 * 
 * @param type $table_to_copy
 * @param type $new_table_name
 * @return type
 * @throws Exception
 */
public function create($table_to_copy, $new_table_name)
{
    $sql = "SHOW CREATE TABLE ".$table_to_copy;

    $res = $this->model->queryRow($sql, PDO::FETCH_ASSOC);

    if(!filled($res['Create Table']))
        throw new Exception('Could not get the create code for '.$table_to_copy);

    $newCreateSql = preg_replace(array(
        '@CREATE TABLE `'.$table_to_copy.'`@',
        '@KEY `'.$table_to_copy.'(.*?)`@',
        '@CONSTRAINT `'.$table_to_copy.'(.*?)`@',
        '@AUTO_INCREMENT=(.*?) @',
    ), array(
        'CREATE TABLE `'.$new_table_name.'`',
        'KEY `'.$new_table_name.'$1`',
        'CONSTRAINT `'.$new_table_name.'$1`',
        'AUTO_INCREMENT=1 ',
    ), $res['Create Table']);

    return $this->model->exec($newCreateSql);
}
falcon_01
fuente
0

Encontré otra forma de exportar la tabla en el archivo sql.

Supongamos que mi mesa es abs_item_variations

abs_item_variations ->structure -> propose table structure -> export -> Go
Sumit kumar
fuente
0

Exportar todo el formato de selección de base de datos como SQL. Ahora, abra el archivo SQL que ha descargado usando el bloc de notas, el bloc de notas ++ o cualquier editor. Verá todas las tablas e insertará consultas de su base de datos. Todos los guiones estarán disponibles allí.

Dhaval Mistry
fuente
-2

Una forma mas. Seleccione la tabla de destino en el panel izquierdo en phpMyAdmin, haga clic en la pestaña Exportar, deseleccione Bloque de datos y haga clic en el botón Ir.

BJ_
fuente