Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter um script de criação de tabela no MySQL Workbench?


Também não consigo encontrar essa opção, pelo menos na edição da Comunidade.

Suponho que isso corresponda à Engenharia Reversa recurso, que, infelizmente, só está disponível na edição comercial (citando) :


Ainda assim, você pode usar SQL simples para obter a create table instrução que lhe permitirá criar uma tabela.

Por exemplo, a seguinte consulta:
show create table url_alias;

quando executado em um banco de dados drupal, daria, ao usar o click > copy field content no 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'

Infelizmente (novamente) , o MySQL Workbench adiciona algumas citações em todos os lugares ao copiar dessa maneira :-(

EDIT:Usando o MySQL 8.0, há uma opção para click > copy field (unquoted) no resultado para obter o resultado desejado sem aspas.



No final, o mais simples A solução, exceto ficar com o MySQL Query Browser, provavelmente será conectar-se ao banco de dados, usando o cliente de linha de comando, e executar o show create table consulta de lá:
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)

Obtendo "a parte certa " da saída é mais fácil, não há citação para remover.




E, apenas por uma questão de completude, você também pode usar mysqldump para obter a estrutura da sua tabela:
mysqldump --no-data --user=USERNAME --password=PASSWORD --host=HOST DATABASE_NAME TABLE_NAME

Usando o --no-data switch, você só obterá a estrutura -- no meio de algumas configurações de modo e tudo isso .