it-swarm.com.de

Wie generiere ich ein create table Skript für eine vorhandene Tabelle in phpmyadmin?

Wie kann ich in phpmyadmin ein create table-Skript für eine vorhandene Tabelle erstellen? 

183
Marko Cakic

Verwenden Sie die folgende Abfrage in der SQL-Registerkarte:

SHOW CREATE TABLE tablename

Um die vollständige Abfrage anzuzeigen, ____ gibt es diesen Hyperlink mit dem Namen + Optionen, und wählen Sie Volltexte

386
Karan Punamiya

SHOW CREATE TABLE <table name>-Abfrage ausführen.

30
Devart

Mysqladmin kann das Skript zum Erstellen einer Tabelle speichern.

Schritt 1, eine Tabelle erstellen, einige Zeilen einfügen:

create table penguins (id int primary key, myval varchar(50))
insert into penguins values(2, 'werrhhrrhrh')
insert into penguins values(25, 'weeehehehehe')
select * from penguins

Schritt 2, benutze den mysql dump Befehl:

mysqldump --no-data --skip-comments --Host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql

Schritt 3, beobachte die Ausgabe in penguins.sql:

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `penguins`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `penguins` (
  `id` int(11) NOT NULL,
  `myval` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET [email protected]_TIME_ZONE */;

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
/*!40111 SET [email protected]_SQL_NOTES */;

Die Ausgabe wird durch eine Anzahl von Ausführungszeichen-Token über und unter der Anzahl gestört. Sie können sie herausfiltern, wenn Sie sie im nächsten Schritt nicht möchten.

Schritt 4 (optional), filtern Sie diese zusätzlichen Ausführungs-Token auf folgende Weise:

mysqldump --no-data --skip-comments --compact --Host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql

Welches Endergebnis erzeugt:

[email protected] /home/el $ cat penguins.sql

DROP TABLE IF EXISTS `penguins`;
CREATE TABLE `penguins` (
  `id` int(11) NOT NULL,
  `myval` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
15
Eric Leschinski

Information_schema.columns direkt abfragen:

select * from information_schema.columns 
where table_name = 'your_table' and table_schema = 'your_database'
7
Eric Leschinski

Dies kann eine verspätete Antwort sein. Aber es kann anderen helfen. In MY SQL Workbench ist dies sehr einfach (Ich verwende Workbench Version 6.3 und My SQL Version 5.1 Community Edition): Klicken Sie mit der rechten Maustaste auf die Tabelle, für die das Erstellungsskript erstellt werden soll, und wählen Sie die Option "In Zwischenablage kopieren -> Anweisung erstellen". Fügen Sie einfach in einem beliebigen Texteditor das Erstellungsskript ein.

2
Narasimman V

Abfrage ausführen ist SQL-Registerkarte

SHOW CREATE TABLE Tabellenname

Klicke auf 

+ Optionen -> Volltexte auswählen -> Klicken Sie auf Los

Kopieren Sie die Tabelle zum Erstellen einer Tabelle, und fügen Sie sie dort ein, wo Sie eine neue Tabelle erstellen möchten.

2

Verwendung der Funktion PHP.

Natürlich müssen Sie die Abfragefunktion ($ this-> model) auf Ihre eigene ändern.

/**
 * Creating a copy table based on the current one
 * 
 * @param type $table_to_copy
 * @param type $new_table_name
 * @return type
 * @throws Exception
 */
public function create($table_to_copy, $new_table_name)
{
    $sql = "SHOW CREATE TABLE ".$table_to_copy;

    $res = $this->model->queryRow($sql, PDO::FETCH_ASSOC);

    if(!filled($res['Create Table']))
        throw new Exception('Could not get the create code for '.$table_to_copy);

    $newCreateSql = preg_replace(array(
        '@CREATE TABLE `'.$table_to_copy.'`@',
        '@KEY `'.$table_to_copy.'(.*?)`@',
        '@CONSTRAINT `'.$table_to_copy.'(.*?)`@',
        '@AUTO_INCREMENT=(.*?) @',
    ), array(
        'CREATE TABLE `'.$new_table_name.'`',
        'KEY `'.$new_table_name.'$1`',
        'CONSTRAINT `'.$new_table_name.'$1`',
        'AUTO_INCREMENT=1 ',
    ), $res['Create Table']);

    return $this->model->exec($newCreateSql);
}
0
falcon_01

Ich habe eine andere Möglichkeit gefunden, eine Tabelle in eine SQL-Datei zu exportieren.

Angenommen, mein Tisch ist abs_item_variations

abs_item_variations ->structure -> propose table structure -> export -> Go
0
Sumit kumar