sql >> Base de Datos >  >> RDS >> Mysql

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

Tampoco encuentro esa opción, al menos en la edición Community.

Supongo que esto corresponde a la Ingeniería inversa función que, lamentablemente, solo está disponible en la edición comercial (citando) :


Aún así, puede usar SQL simple para obtener 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 Drupal, daría, al usar 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 (otra vez) , MySQL Workbench agrega algunas comillas en todas partes al copiar de esta manera :-(

EDIT:Usando MySQL 8.0, hay una opción para click > copy field (unquoted) en el resultado para obtener el resultado deseado sin comillas.


Al final, lo más sencillo La solución, excepto quedarse con MySQL Query Browser, probablemente será conectarse a la base de datos, usando el cliente de línea de comandos y ejecutar show create table Consulta 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 porción correcta " de la salida es más fácil, allí:no hay comillas para eliminar.


Y, solo por el bien de la exhaustividad, también podría usar mysqldump para obtener la estructura de su tabla:

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

Usando el --no-data cambiar, solo obtendrá la estructura -- en medio de algunas configuraciones de modo y todo eso .