sql >> Databasteknik >  >> RDS >> Mysql

Hur får man ett skript för att skapa tabeller i MySQL Workbench?

Jag kan inte heller hitta ett sådant alternativ, åtminstone i Community-utgåvan.

Jag antar att detta motsvarar reverse engineering funktion, som tyvärr bara är tillgänglig i den kommersiella utgåvan (citat) :


Du kan fortfarande använda plain-SQL för att få create table instruktion som låter dig skapa en tabell.

Till exempel följande fråga:

show create table url_alias;

när den körs på en drupal-databas, skulle ge, när du använder höger click > copy field content på resultatet :

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

Tyvärr (igen) , MySQL Workbench lägger till några citat överallt när du kopierar på det här sättet :-(

EDIT:Med MySQL 8.0 finns det ett alternativ att högerklicka click > copy field (unquoted) på resultatet för att få önskat resultat utan citattecken.


I slutändan är det enklaste lösning, förutom att stanna kvar med MySQL Query Browser, kommer troligen att vara att ansluta till databasen med kommandoradsklienten och köra show create table fråga därifrån :

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)

Får "rätt del " av utdata är lättare, där:inget citat att ta bort.


Och bara för fullständighetens skull kan du också använda mysqldump för att få din tabells struktur :

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

Använda --no-data switch, får du bara strukturen -- mitt i vissa lägesinställningar och allt det där .



  1. T-SQL - Aliasing med =kontra som

  2. Ställ in ett standardvärde för en kolumn i SQLite:DEFAULT Constraint

  3. SQL Group efter och min (MySQL)

  4. Få bara poster skapade idag i laravel