winfried-hh
Goto Top

Globales Ersetzen einer Zeichenfolge in einer mySQL-Datenbank

Hallo in die Runde,

gibt es eine Möglichkeit, in einer mySQL-Datenbank eine bestimmte Zeichenfolge global durch eine andere zu ersetzen?


Danke,
Winfried

Content-Key: 180281

Url: https://administrator.de/contentid/180281

Printed on: May 8, 2024 at 11:05 o'clock

Member: SlainteMhath
SlainteMhath Feb 09, 2012 at 10:19:44 (UTC)
Goto Top
Moin,

per SQL Befehl: nein.
Du kannst natuerlich die DB (als SQL-Script) exportieren, mit texteditor suchen/ersetzen und dann wieder importieren - während der Bearbeitung muss die DB natuerlich offline sein.

lg,
Slainte
Member: Winfried-HH
Winfried-HH Feb 09, 2012 at 12:01:17 (UTC)
Goto Top
per SQL Befehl: nein.
Du kannst natuerlich die DB (als SQL-Script) exportieren, mit texteditor suchen/ersetzen und dann wieder importieren -
während der Bearbeitung muss die DB natuerlich offline sein.

Da ich mich mit PHP und MySQL nicht wirklich auskenne, lasse ich da lieber die Finger von. Es gibt beim Exportieren einer Datenbank unter PHPMyAdmin so viele Optionen, die man ein- oder ausschalten kann (Export in einer Transaktion zusammenfassen, Fremdschlüsselüberprüfung deaktivieren, DROP DATABASE hinzufügen, Mit 'DROP TABLE', Mit 'IF NOT EXISTS', AUTO_INCREMENT-Wert hinzufügen, Tabellen- und Feldnamen in einfachen Anführungszeichen, Vollständige 'INSERT's, Erweiterte 'INSERT's, Verzögerte 'INSERT's, Fehlerübergehende 'INSERT's) und ich weiß nicht, welche ich brauche, um meine Datenbank hinterher wieder sicher zurückspielen zu können. Wenn da was schief geht, ist unsere komplette WebSite weg, da es sich um die Datenbank unseres CMS handelt.

Aber mal angenommen, es muß nicht global sein, sondern es reichen im Prinzip zwei Felder in zwei Tabellen - kann ich dann diesen Code verwenden, den ich im Netz gefunden habe:

UPDATE tabellenname SET feldname = replace(feldname, suchstring, ersatzstring);

Und kann ich den mehrfach untereinander setzen, um verschiedene Ersetzungen sozusagen als Batch durchzuführen:

UPDATE 'cms_inhalt' SET 'content' = replace('content', 'märchen.jpg', 'maerchen.jpg');  
UPDATE 'cms_inhalt' SET 'content' = replace('content', 'märchen.jpg', 'maerchen.jpg');  
UPDATE 'cms_news_inhalt' SET 'content' = replace('content', 'märchen.jpg', 'maerchen.jpg');  
UPDATE 'cms_news_inhalt' SET 'content' = replace('content', 'märchen.jpg', 'maerchen.jpg');  
Member: SlainteMhath
SlainteMhath Feb 09, 2012 at 12:16:34 (UTC)
Goto Top
Da ich mich mit PHP und MySQL nicht wirklich auskenne, lasse ich da lieber die Finger von.
Brav face-smile

Und kann ich den mehrfach untereinander setzen, um verschiedene Ersetzungen sozusagen als Batch durchzuführen:
Ja, kann man. Allerdings würde ich da noch eine Transaktion drumrum packen (und vorher ein DB Backup machen)
Member: Winfried-HH
Winfried-HH Feb 09, 2012 at 12:22:54 (UTC)
Goto Top
Ja, kann man. Allerdings würde ich da noch eine Transaktion drumrum packen

Und was für eine??


(und vorher ein DB Backup machen)

Da sind wir wieder bei dem obigen Problem. DB-Backup heißt ja, die Datenbank per PHPMyAdmin zu exportieren. Da stellt sich dann aber wieder die Frage, welche der diversen Optionen man benötigt, welche zumindest nicht schade, wenn man sie aktiviert, und welche man besser nicht aktivieren sollte.
Member: SlainteMhath
SlainteMhath Feb 09, 2012 at 12:43:44 (UTC)
Goto Top
Und was für eine??
Oook face-smile Guckst Du MySQL Doku: http://dev.mysql.com/doc/refman/5.0/en/commit.html

Kurz und unverblühmt: bei deinem Kentnissstand empfehle ich dir, die DB in eine Test umgebung zu überführen und die Änderungen und den Im./Export dort zu testen. Aller andere führt mit hoher wahrscheinlichlkeit zu Datenverlust.
Member: Winfried-HH
Winfried-HH Feb 09, 2012 at 13:01:38 (UTC)
Goto Top

Grummel ... schon wieder was in Englisch. Es ist ja nicht so, daß ich kein Englisch könnte, mein altes Schulenglisch ist noch ganz gut in Schuß. Aber ein englischer Fachartikel über ein Thema, das ich nicht mal in Deutsch richtig verstehe, ist was anderes.


Kurz und unverblühmt: bei deinem Kentnissstand empfehle ich dir, die DB in eine Test umgebung zu überführen und die
Änderungen und den Im./Export dort zu testen. Aller andere führt mit hoher wahrscheinlichlkeit zu Datenverlust.

Ja, ich gebe durchaus zu, daß mein Kenntnisstand im Bereich SQL und PHP dürftig ist. Aber genau das möchte ich ja ändern. Daher wäre eine deutschsprachige und für Anfänger verständliche Erläuterung der oben genannten Exportoptionen (vielleicht sogar mit einer Empfehlung, ob man das braucht oder nicht) mir wesentlich lieber als eine langwierige Trial-and-Error-Testreihe, für die mir mein beruflicher Alltag nicht wirklich Zeit läßt. Also, gibt es so ein Tutorial irgendwo?