(MYSQL) Tabelle kopieren
Andy
- php
Hi!
ich möchte gerne eine neue Tabelle anlegen mit der gleichen struktur wie eine andere. Dies soll automatisch gehen.
Gibt es schon einen fertigen befehl für MYSQL? oder muss man das über PHP lösen? Wenn ja wie geht man da ran?
Danke!
Andy
okay habe eine Lösung gefunden:
CREATE TABLE tabelle1 SELECT * FROM tabelle
gibt es auch eine möglichkeit nur die struktur zu übernehmen?
ich habs halt nun so gelöst, dass ich die neue tabelle noch mit truncate leere
Andy
echo $begrüßung;
CREATE TABLE tabelle1 SELECT * FROM tabelle
gibt es auch eine möglichkeit nur die struktur zu übernehmen?
CREATE TABLE tabelle1 SELECT * FROM tabelle WHERE 0
echo "$verabschiedung $name";
Kann es sein dass bei dieser Methode auto_increment und primärschlüssel nicht übernommen werden?
Andy
Hello,
Kann es sein dass bei dieser Methode auto_increment und primärschlüssel nicht übernommen werden?
Ja. Das ist die Voreinstellung
http://dev.mysql.com/doc/mysql/en/create-table.html
vielleicht hilft Dir auch
http://dev.mysql.com/doc/mysql/en/show-create-table.html
Dann müsstest Du das Create-Statement in einem Qurey abfragen und gleich wieder in ein nächstes Query einsetzen.
Zwischendurch könntest Du noch Modifiaktionen vornehmen.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
echo $begrüßung;
Kann es sein dass bei dieser Methode auto_increment und primärschlüssel nicht übernommen werden?
Ja, weil es kein 1:1-Kopieren der Tabelle darstellt sondern ein Erstellen einer Tabelle aus der Ergebnismenge der SELECT-Abfrage. Wenn du also nur ein paar Felder statt * angibst, dann werden auch nur diese Felder in der neuen Tabelle sein.
So gehts: Lass dir mit
SHOW CREATE TABLE tabelle
den Befehl zur Definition der Tabelle (CREATE TABLE ...) anzeigen, erstelle die Kopie damit und kopiere dann mit einem
INSERT INTO tabelle1 SELECT * FROM tabelle
die Daten.
echo "$verabschiedung $name";
echo $begrüßung;
Nachtrag, weil's mir grad über den Weg lief:
Seit MySQL 4.1 kann man Tabellen mit allem Drum und Dran so kopieren:
CREATE TABLE new_tbl LIKE orig_tbl;
echo "$verabschiedung $name";