Wie generiere ich ein Skript zum Erstellen einer Tabelle für eine vorhandene Tabelle in phpmyadmin?

246

Wie kann ich ein Skript zum Erstellen einer Tabelle für eine vorhandene Tabelle in phpmyadmin generieren?

Marko Cakic
quelle

Antworten:

513

Verwenden Sie die folgende Abfrage in der Registerkarte "SQL":

SHOW CREATE TABLE tablename

Vollständige Abfrage anzeigen Es gibt diesen Hyperlink mit dem Namen + Optionen oben links. Dort wählen Sie Vollständige Texte

Karan Punamiya
quelle
1
Gibt es eine Möglichkeit, anzugeben, welche Datenbank beispielsweise mehrere Datenbanken mit demselben Tabellennamen enthält? Oder ist das nicht möglich?
Davos
6
@Davos verwenden dies, zeigen Sie create table database_name.tabellenname.
Fahad Anjum
Danke, das wollte ich
Astrosixer
Gibt es Argumente, die ich hinzufügen kann, um es in eine Datei zu exportieren?
Dan.
40

Run - SHOW CREATE TABLE <table name>Abfrage.

Devart
quelle
4
+1. Hinweis: Wenn Sie eine Abfrage über die Befehlszeile ausführen, ist die ;am Ende erforderlich.
Zurückgehalten
15

Mysqladmin kann das Skript zum Erstellen einer Tabelle speichern.

Schritt 1, erstellen Sie eine Tabelle, fügen Sie einige Zeilen ein:

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: Verwenden Sie den Befehl mysql dump:

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, beobachten Sie die Ausgabe in penguins.sql:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@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 TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

Die Ausgabe wird durch eine Reihe von Token für Ausführungsbedingungen oben und unten überladen. Sie können sie herausfiltern, wenn Sie sie im nächsten Schritt nicht möchten.

In Schritt 4 (optional) können Sie diese zusätzlichen Token für Ausführungsbedingungen folgendermaßen herausfiltern:

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

Was die endgültige Ausgabe erzeugt:

eric@dev /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;
Eric Leschinski
quelle
9

Abfrage ausführen ist SQL-Registerkarte

SHOW CREATE TABLE tableName

Klicke auf

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

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

Samir Mangroliya
quelle
Vielen Dank für den Tipp zum Anzeigen von Volltext. Ich war mir nicht sicher, warum er abgeschnitten wurde, bis ich Ihre Antwort sah.
Dymas
@Dymas Sie müssen Volltexte auswählen, um die vollständige Abfrage anzuzeigen. Ich habe das gleiche getan, um die vollständige Abfrage zu sehen.
Samir Mangroliya
7

Fragen Sie information_schema.columns direkt ab:

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

Dies kann eine späte Antwort sein. Aber es kann anderen helfen. In MY SQL Workbench (ich verwende Workbench Version 6.3 und My SQL Version 5.1 Community Edition) ist dies sehr einfach: Klicken Sie mit der rechten Maustaste auf die Tabelle, für die Sie das Erstellungsskript erstellen möchten, und wählen Sie die Option "In Zwischenablage kopieren -> Anweisung erstellen". Fügen Sie einfach einen beliebigen Texteditor ein, um das Erstellungsskript zu erhalten.

Narasimman V.
quelle
0

Verwenden der PHP-Funktion.

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);
}
falcon_01
quelle
0

Ich habe einen anderen Weg gefunden, um eine Tabelle in eine SQL-Datei zu exportieren.

Angenommen, mein Tisch ist abs_item_variations

abs_item_variations ->structure -> propose table structure -> export -> Go
Sumit Kumar
quelle
0

Exportieren Sie das gesamte Datenbankauswahlformat als SQL. Öffnen Sie nun die heruntergeladene SQL-Datei mit Notepad, Notepad ++ oder einem beliebigen Editor. Sie sehen alle Tabellen und fügen Abfragen Ihrer Datenbank ein. Alle Skripte werden dort verfügbar sein.

Dhaval Mistry
quelle
-2

Noch ein Weg. Wählen Sie die Zieltabelle im linken Bereich von phpMyAdmin aus, klicken Sie auf die Registerkarte Exportieren, heben Sie die Auswahl des Datenblocks auf und klicken Sie auf die Schaltfläche Los.

BJ_
quelle