Mysql
 sql >> Database >  >> RDS >> Mysql

Come ottenere uno script per la creazione di una tabella in MySQL Workbench?

Non riesco nemmeno a trovare un'opzione del genere, almeno nell'edizione Community.

Suppongo che questo corrisponda al Reverse Engineering funzione, che, sfortunatamente, è disponibile solo nell'edizione commerciale (quoting) :


Tuttavia, puoi usare l'SQL semplice per ottenere il create table istruzioni che ti permetteranno di creare una tabella.

Ad esempio, la seguente query :

show create table url_alias;

se eseguito su un database drupal, darebbe, quando si utilizza il tasto destro click > copy field content sul risultato :

'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'

Sfortunatamente (di nuovo) , MySQL Workbench aggiunge alcune virgolette ovunque durante la copia in questo modo :-(

EDIT:utilizzando MySQL 8.0, c'è un'opzione per click > copy field (unquoted) sul risultato per ottenere il risultato desiderato senza virgolette.


Alla fine, il più semplice la soluzione, a parte rimanere con MySQL Query Browser, sarà molto probabilmente quella di connettersi al database, utilizzando il client della riga di comando, ed eseguire show create table interrogare da 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)

Ottenere "la porzione giusta " dell'output è più facile, lì:nessuna citazione da rimuovere.


E, solo per completezza, potresti anche usare mysqldump per ottenere la struttura della tua tabella :

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

Usando il --no-data switch, otterrai solo la struttura -- nel mezzo di alcune impostazioni della modalità e tutto il resto .