Wie zu ändern, MySQL Tabelle ohne Daten zu verlieren?
In meiner Anwendung habe ich einige änderungen machen und laden Sie zu einem Test-server. Da habe ich keinen Zugriff auf die server-Datenbank ausführen ich ALTER
Befehle, um änderungen vorzunehmen.
Mithilfe einer Methode, die ich lief den folgenden Befehl auf dem server:
ALTER TABLE `blahblahtable` ADD COLUMN `newcolumn` INT(12) NOT NULL
Danach habe ich festgestellt, dass die alle Daten der Tabelle entfernt wurde. Nun ist die Tabelle leer.
Also muss ich ändern, um die Tabelle ohne die Entfernung seiner Daten. Gibt es eine Möglichkeit, das zu tun?
Ihre Frage ist nicht klar. Können Sie uns mehr details, was genau passiert ist?
Meinst du umbenennen?
stellen Sie sicher, dass Sie nicht konvertieren von text in integer (so ähnlich)
bitte zeigen Sie uns welche Art von alter-Befehl haben Sie getan, weil ich getan habe hundert der alter-Befehl und keine Daten verloren gegangen.
von uns gelesen jetzt. jetzt habe ich klar, was besser ist.
Meinst du umbenennen?
stellen Sie sicher, dass Sie nicht konvertieren von text in integer (so ähnlich)
bitte zeigen Sie uns welche Art von alter-Befehl haben Sie getan, weil ich getan habe hundert der alter-Befehl und keine Daten verloren gegangen.
von uns gelesen jetzt. jetzt habe ich klar, was besser ist.
InformationsquelleAutor | 2011-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deine Frage ist ziemlich offensichtlich. Sie sind das hinzufügen einer neuen Spalte zu der Tabelle, und wenn er auf
NOT NULL
.Um die Dinge klarer, ich werde erklären, die Reaktion des Servers, wenn Sie den Befehl ausführen:
Sie eine neue Spalte hinzufügen, so jede Zeile der Tabelle hat, um einen Wert für diese Spalte.
Als Sie nicht deklarieren Standardwert, alle Zeilen gesetzt
null
für diese neue Spalte.Der server feststellt, dass die Zeilen der Tabelle haben eine
null
Wert auf eine Spalte, die nichtnull
s. Das ist illegal.Den Konflikt zu lösen, werden die ungültigen Zeilen sind gelöscht.
Gibt es einige gute fixes für dieses Problem:
Legen Sie eine Standardwert (empfohlen) für die Spalte, die Sie gerade erstellen.
Erstellen der Spalte ohne die
NOT NULL
, setzen Sie die entsprechenden Werte, und klicken Sie dann die SpalteNOT NULL
.InformationsquelleAutor Alba Mendez
Können Sie erstellen eine temporäre Tabelle, pass alle Informationen aus der Tabelle, die Sie ändern möchten, und dann wieder die info an die geänderte Tabelle.
InformationsquelleAutor elvenbyte