Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie bekomme ich ein Tabellenerstellungsskript in MySQL Workbench?

Eine solche Option kann ich zumindest in der Community Edition auch nicht finden.

Ich nehme an, das entspricht dem Reverse Engineering Funktion, die leider nur in der kommerziellen Edition verfügbar ist (Zitat) :


Trotzdem können Sie Plain-SQL verwenden, um die create table zu erhalten Anweisung, mit der Sie eine Tabelle erstellen können.

Beispielsweise die folgende Abfrage:

show create table url_alias;

würde bei Ausführung auf einer Drupal-Datenbank ergeben, wenn mit der rechten Maustaste click > copy field content verwendet wird auf das Ergebnis :

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

Leider (wieder) , MySQL Workbench fügt beim Kopieren auf diese Weise überall Anführungszeichen ein :-(

BEARBEITEN:Bei Verwendung von MySQL 8.0 gibt es eine Option zum Rechtsklicken click > copy field (unquoted) auf das Ergebnis, um das gewünschte Ergebnis ohne Anführungszeichen zu erhalten.


Am Ende das einfachste Lösung, abgesehen davon, beim MySQL Query Browser zu bleiben, wird höchstwahrscheinlich darin bestehen, sich mit dem Befehlszeilen-Client mit der Datenbank zu verbinden und show create table auszuführen Abfrage von dort :

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)

"die richtige Portion bekommen " der Ausgabe ist einfacher, da :kein Anführungszeichen zu entfernen.


Und der Vollständigkeit halber könnten Sie auch mysqldump verwenden um die Struktur Ihrer Tabelle zu erhalten :

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

Mit --no-data wechseln, erhalten Sie nur die Struktur -- mitten in einigen Moduseinstellungen und so weiter .