MySQL zamiana tekstu

Od czasu do czasu potrzebujemy zmienić jakiś tekst w bazie danych. Jest to trywialne jeżeli tekst znajduje się w pojedynczej kolumnie. Wtedy można użyć np. mysql cli:

UPDATE `tabela` SET `kolumna` = replace(kolumna, 'stary_tekst', 'nowy_tekst');

Problem jednak pojawia się kiedy tekst jest w więcej niż jednej tabeli lub gdy nie wiemy gdzie się znajduje. Wtedy można użyć sztuczki polegającej na zrzuceniu bazy do pliku, podmianie tekstu w pliku i zaimportowaniu go do bazy:

mysqldump -u user -p nazwa_bazy> ./db.sql
sed -i 's/stary_tekst/nowy_tekst/g' ./db.sql
mysql -u user -p nazwa_bazy < ./db.sql

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*