2013-09-06 11 views
10

In phpMyAdmin, wollte ich eine Datenbank auf einen anderen Namen kopieren, so dass ich effektiv 2 Datenbanken genau das gleiche hätte. Einer als mein oringinal und ein anderer zum Testen auf der Staging-Website, die ich habe.Was bedeutet "ADD AUTO_INCREMENT Wert" in phpMyAdmin

Es gibt drei Hauptoptionen

structure only 
structure and data 
data only, 

Ich brauche Struktur und Daten, aber es gibt mehr Kontrollkästchen unten;

CREATE DATABASE before copying //was checked by default 
Add DROP TABLE/DROP VIEW 
Add AUTO_INCREMENT value //was checked by default 
Add constraints 
Switch to copied database 

Was bedeutet „AUTO_INCREMENT Wert ADD“ und „Add Einschränkungen“ bedeuten, und wenn ich Struktur kopieren und Daten doesnt alle Felder mit AI kopiert werden?

Antwort

9

Wenn Sie eine Datenbank einschließlich Struktur und Daten exportieren/importieren, stellt phpmyadmin sie im gleichen Zustand wieder her, wie sie war. Das gleiche gilt, wenn Sie die Datenbank kopieren.

Add AUTO_INCREMENT value Legen Sie einfach den Wert auto_increment richtig fest, damit Sie die wiederhergestellte Datenbank korrekt verwenden können. Dies ist notwendig, wenn phpmyadmin eine Art Masseneinfügung durchführt, bei der auto_increment nicht bei jeder Einfügung inkrementiert wird. Dies ist auch erforderlich, um den richtigen Wert zu setzen, da Sie einige Daten in Ihre Tabelle einfügen und löschen können. Um die Datenkonsistenz zu bewahren, müssen Sie nicht nur die exakte ID, sondern auch eine ID verwenden durch eine alte Reihe. Die Add constraints macht genau das, was es bedeutet, d. Dies ist auch erforderlich, wenn Sie einen vollständigen Dump wünschen.

Für das, was Sie versuchen, wäre vielleicht eine Datenbankreplikation besser.

Informationen zur Replikation here und here finden Sie.

+1

Im kopieren der DB zu einem anderen mit einem neuen Namen, nicht zu exportieren – IEnumerable

+1

Okay, tut mir leid, dass ich falsch gelesen habe. Aber es ändert meine Antwort nicht. – Geoffroy

+0

ok cool, wo finde ich das DB-Replikationsprogramm – IEnumerable

3

Wenn die Kontrollkästchen "AUTO_INCREMENT-Wert hinzufügen" und "Abhängigkeiten hinzufügen" aktiviert sind, sollte die neue Tabelle denselben nächsten Autoindex und dieselben Einschränkungen wie die kopierte Tabelle haben. Alle Felder mit AI werden gefüllt

+1

OK, wenn ich eine Replik-DB machen wollte, sollte ich diese beiden Werte auswählen? – IEnumerable

+0

Ja, Sie sollten wie @Geoffroy sagen Konsistenz zu halten .. –

+0

vorausgesetzt, Sie kopieren die Tabellen, die dort in der Einschränkung (zB Fremdschlüssel-Einschränkung) in der replizierten DB –

2

"Auto_INCREMENT hinzufügen" wird automatisch in der neuen kopierten Datenbank inkrementiert. Wenn wir die Option deaktivieren, wird die automatische Erhöhung von diesen Feldern gestoppt. Also, wenn wir automatisch inkrementieren in neue Datenbank beibehalten wollen, dann behalten Sie die Markierung "Hinzufügen AUTO_INCREMENT"