Erstellen Sie eine Tabelle, wenn sie nicht von mysqldump existiert
Frage ich mich, ob es irgendeinen Weg gibt, in mysqldump, fügen Sie die entsprechende create table-option [WENN NICHT VORHANDEN]. Irgendwelche Ideen?
InformationsquelleAutor der Frage khelll | 2010-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut eine Quellemysqldump nicht über diese option.
Könnten Sie die
--force
option beim importieren der dump-Datei zurück, wo MySQL ignoriert die Fehler von versuchen, erstellen von doppelten Tabellen. Jedoch beachten Sie, dass mit dieser Methode auch andere Fehler ignoriert werden, wie gut.Sonst können Sie Ihre dump-Datei durch ein Skript ersetzen würde alle vorkommen von
CREATE TABLE
mitCREATE TABLE IF NOT EXISTS
.InformationsquelleAutor der Antwort Daniel Vassallo
Versuchen, diese auf die SQL-Datei:
oder speichern
es ist nicht ideal, aber es funktioniert 😛
InformationsquelleAutor der Antwort Pawel
Mit
sed
wie beschrieben von @Pawel gut funktioniert. Dennoch, Sie möglicherweise nicht wie die Idee der Rohrleitungen, die Ihre Daten durch mehr mögliche Fehlerquellen als unbedingt nötig. In diesem Fall kann man mit zwei getrennten Halden:--no-data --skip-add-drop-table
)--no-create-info --skip-add-drop-table
)Gibt es einige andere Dinge zu kümmern, obwohl (wie z.B. Trigger). Überprüfen Sie im Handbuch für details.
InformationsquelleAutor der Antwort sfussenegger
Nicht, was Sie vielleicht möchten, aber mit
--add-drop-table
jeder ERSTELLEN, ist mit dem Präfix nach DROP TABLE-Anweisung.Ansonsten würde ich gehen für einen einfachen suchen/ersetzen (z.B. mit
sed
).InformationsquelleAutor der Antwort Boldewyn
erstellen Sie ein bash-Skript mit diesem...
stellen Sie sicher, dass Sie es ausführbar machen. (chmod 0777 dump.sh)
dump.sh
InformationsquelleAutor der Antwort Artistan
Finden und ersetzen Sie den text Auf Windows 7 Mit PowerShell -
Öffnen Sie die Eingabeaufforderung, und verwenden Sie den Befehl unten
Erste param ist der Dateipfad
Zweiten Parameter ist die 'find string'
Dritten param ist "ersetzen-string'
Dieser Befehl erstellt eine neue Datei mit dem text ersetzt.
Entfernen Sie den Befehl ab '|' (pipe) wenn Sie Sie ersetzen möchten, und speichern Sie Inhalte in der gleichen Datei.
InformationsquelleAutor der Antwort Franc
Der sed wird viel schneller, ohne das " g " (global) am Ende:
zB:
InformationsquelleAutor der Antwort Celepine
Die dump-Ausgabe ist die Kombination von DROP und CREATE, so müssen Sie DROP-Anweisung entfernen und ändern Sie die CREATE-Anweisung der form eines gültigen (logischen) Ausgabe:
InformationsquelleAutor der Antwort مصطفی