¿Cómo obtener un script de creación de tablas en MySQL Workbench?


Estoy volviendo al Navegador de consultas MySQL de MySQL GUI Tools ya que no puedo encontrar el acceso directo para obtener el script de creación de una tabla en MySQL Workbench.

Author: OMG Ponies, 2010-03-12

12 answers

Tampoco puedo encontrar tal opción, al menos en la edición de la Comunidad.

Supongo que esto corresponde a la Ingeniería Inversa característica, que, por desgracia, solo está disponible en la edición comercial (citando) :

Ingeniería inversa de una base de datos directamente desde un servidor MySQL se aplica a versiones comerciales de MySQL Workbench only .


Aún así, puede usar plain-SQL para obtener el create table instrucción que le permitirá crear una tabla.

Por ejemplo, la siguiente consulta:

show create table url_alias;

Cuando se ejecuta en una base de datos de drupal, daría, cuando se utiliza la derecha click > copy field content en el resultado:

'CREATE TABLE `url_alias` (
  `pid` int(10) unsigned NOT NULL auto_increment,
  `src` varchar(128) NOT NULL default '''',
  `dst` varchar(128) NOT NULL default '''',
  `language` varchar(12) NOT NULL default '''',
  PRIMARY KEY  (`pid`),
  UNIQUE KEY `dst_language` (`dst`,`language`),
  KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8'

Desafortunadamente (nuevamente) , MySQL Workbench agrega algunas comillas en todas partes al copiar de esta manera :-(


Al final, la solución más simple , excepto de permanecer con MySQL Query Browser, lo más probable es que se conecte a la base de datos, utilizando el cliente de línea de comandos, y ejecute la consulta show create table desde allí:

mysql> show create table url_alias\G
*************************** 1. row ***************************
       Table: url_alias
Create Table: CREATE TABLE `url_alias` (
  `pid` int(10) unsigned NOT NULL auto_increment,
  `src` varchar(128) NOT NULL default '',
  `dst` varchar(128) NOT NULL default '',
  `language` varchar(12) NOT NULL default '',
  PRIMARY KEY  (`pid`),
  UNIQUE KEY `dst_language` (`dst`,`language`),
  KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

Obtener " la parte correcta" de la salida es más fácil, no hay comillas que eliminar.



Y, solo para completar, también puedes usar mysqldump para obtener la estructura de tu tabla:

mysqldump --no-data --user=USERNAME --password=PASSWORD --host=HOST DATABASE_NAME TABLE_NAME

Usando el interruptor --no-data, solo obtendrás la estructura in en medio de algunos ajustes de modo y todo eso.

 102
Author: Pascal MARTIN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-19 18:07:26

Para obtener el script de creación de una tabla individual, simplemente haga clic con el botón derecho en el nombre de la tabla y haga clic en Copiar al portapapeles > Crear instrucción.

Para habilitar el script File > Forward Engineering SQL_CREATE.. opción y para obtener el script de creación para toda su base de datos :

  1. Base de datos > Ingeniería inversa (Ctrl+R)
  2. Siga los pasos para crear el diagrama EER
  3. Cuando vea el diagrama EER, haga clic en Archivo > Reenviar Script SQL_CREATE de Ingeniería... (Ctrl+Shift+G)
 43
Author: phil mccullick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-19 18:24:28

Haga clic con el botón derecho en la tabla correspondiente y elija uno de los siguientes:

  • Copiar al portapapeles > Crear instrucción
  • Enviar al Editor SQL > Crear instrucción

Eso parece funcionar para mí.

 17
Author: Cez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-13 22:09:50

Se encuentra en la administración del servidor en lugar de en el desarrollo SQL.

  • En la pantalla de inicio, seleccione la instancia del servidor de base de datos en la que se encuentra su base de datos desde la sección de administración del servidor en el extremo derecho.
  • En el menú de la derecha seleccione Data Export.
  • Seleccione la base de datos que desea exportar y elija una ubicación.
  • Haga clic en iniciar exportación.
 5
Author: aronkerr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-07 23:21:20

Mostrar crear tabla

 4
Author: user21884,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-18 21:27:17

No estoy seguro de si entendí completamente su problema, pero si se trata solo de crear scripts de exportación, debe reenviar engineer a SQL script - Ctrl + Shift + G o File -> Export -> first option.

 3
Author: bbb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-12 13:59:58

Vine aquí buscando la respuesta a la misma pregunta. Pero yo mismo encontré una respuesta mucho mejor.

In the tables list, if you right-click on the table name there is a suite of CRUD script generation options in "Send to SQL Editor". You can select multiple tables and take the same approach too.

Mi versión de MySQL Workbench: 5.2.37

 3
Author: exception,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-13 15:31:23

En "vista general del modelo" o " diagrama "simplemente haga clic con el botón derecho en la tabla y tendrá las siguientes opciones:" Copiar Insertar al portapapeles "O"Copiar SQL al portapapeles"

 1
Author: Urias BT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-24 15:01:59

No estoy seguro de si esto sigue siendo un problema, pero para mí en 5.2.35 CE es posible obtener los scripts de create de la siguiente manera:

  1. Base De Datos --> Ingeniería Inversa

  2. En conexión almacenada, elija su base de datos

  3. Pulse "Siguiente" varias veces, elija el esquema que desea aplicar ingeniería inversa y deje que la herramienta funcione

  4. Obtendrá una vista de "Diagrama EER" con todo el esquema de la BD. Si hace clic derecho en la tabla que le interesa y elige " Copiar SQL a Portapapeles " Creo que tendrás lo que necesitas.

Esperemos que esto ayude a alguien más que lo necesite.

 1
Author: madchedar0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-11 00:02:44

1 usar comando

show create table test.location

introduzca la descripción de la imagen aquí

  1. Haga clic derecho en la fila seleccionada y elija Abrir valor En el Visor

  2. Seleccione tab Texto introduzca la descripción de la imagen aquí

 1
Author: MrBii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-19 04:30:04

U puede usar MySQL Proxyy su scripting system para ver consultas SQL en tiempo real en el terminal.

 0
Author: Alan Gabriel Bem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-28 07:38:05

Solución para MySQL Workbench 6.3 E

  • En el panel izquierdo, haga clic derecho en su tabla y seleccione "Table Inspector"
  • En el panel central, haga clic en DDL label
 0
Author: Caat c,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-29 15:28:09