sql >> Database >  >> RDS >> Mysql

Hoe krijg ik een script voor het maken van tabellen in MySQL Workbench?

Ik kan zo'n optie ook niet vinden, althans niet in de Community-editie.

Ik veronderstel dat dit overeenkomt met de Reverse Engineering functie, die helaas alleen beschikbaar is in de commerciële editie (citaat) :


Toch kunt u gewone SQL gebruiken om de create table te krijgen instructie waarmee u een tabel kunt maken.

Bijvoorbeeld de volgende vraag:

show create table url_alias;

wanneer uitgevoerd op een drupal database, zou geven, bij gebruik van rechts click > copy field content op het resultaat :

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

Helaas (opnieuw) , MySQL Workbench voegt overal enkele aanhalingstekens toe bij het kopiëren op deze manier :-(

BEWERKEN:Bij gebruik van MySQL 8.0 is er een optie om met de rechtermuisknop te click > copy field (unquoted) op het resultaat om het gewenste resultaat te krijgen zonder aanhalingstekens.


Uiteindelijk de eenvoudigste oplossing, behalve om bij MySQL Query Browser te blijven, zal hoogstwaarschijnlijk zijn om verbinding te maken met de database, met behulp van de opdrachtregelclient, en de show create table uit te voeren vraag vanaf daar:

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)

"de juiste portie . krijgen " van de uitvoer is eenvoudiger, daar:geen aanhalingsteken om te verwijderen.


En voor de volledigheid kun je ook mysqldump . gebruiken om de structuur van uw tafel te krijgen:

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

De --no-data . gebruiken schakelaar, je krijgt alleen de structuur -- midden in sommige modusinstellingen en zo .



  1. Csv opslaan in MySQL-veld - slecht idee?

  2. Hoe een afbeelding uit de database weer te geven met behulp van php

  3. Prestaties van MySQL-weergave

  4. Waarom krijg ik Kan parameter 2 niet doorgeven door een verwijzingsfout wanneer ik bindParam gebruik met een constante waarde?