W zasadzie mam bazę danych joomla w MySQL, która ma kilka tabel z prefiksem "jmla_". Chciałbym zmienić nazwę wszystkich tych tabel, zastępując prefiks "jmla_" prefiksem "jos_". Wszelkie pomysły na temat tego, jak to zrobić za pomocą prostego skryptu SQL lub zapytania SQL?W MySQL, jak mogę wsadowo zmieniać nazwy tabel w bazie danych?
Odpowiedz
- Export użyciu phpMyAdmin do pliku .sql
- użyć dowolnego edytora tekstu (wolę vim, praca doskonała na dużych plikach) z funkcji „znajdź i zastąp” w celu otwarcia pliku
- Czy „znajdź i zastąp” , umieszczając swój aktualny prefiks w polu wyszukiwania i zaktualizowany w polu zamień
- Zaimportuj plik za pomocą phpmyadmin.
Pamiętaj o usunięciu starej bazy danych przed zaimportowaniem przez phpmyadmin. Można to zrobić, sprawdzając odpowiednie opcje podczas eksportu.
RENAME TABLE jmla_whatever to jos_whatever;
Musisz napisać skrypt, aby pokryć wszystkie tabele - można wypełnić swój skrypt z wyjściem show tables
. Aby uzyskać szczegółowe informacje, patrz: http://dev.mysql.com/doc/refman/5.0/en/rename-table.html.
Run to stwierdzenie:
SELECT 'rename table '||table_name||' to '||'jos'||substr(table_name,5)||';'
FROM information_schema.tables
WHERE table_name like 'jmla%'
Stwarza to skrypt, który będzie zmienić wszystkie tabele. Wystarczy skopiować & wkleić dane wyjściowe do klienta SQL.
(Trzeba będzie zmienić ||
do niestandardowych operatora konkatenacji MySQL w przypadku, gdy nie jest uruchomiony w trybie ANSI)
Upewnij się, że filtrujesz również bazę danych, której chcesz użyć, w przeciwnym razie spowoduje to wygenerowanie zapytań RENAME we wszystkich bazach danych, w tym w innych instalacjach Joomla: 'AND TABLE_SCHEMA = 'your_joomla_db'' – Fanis
SELECT concat ('rename table ',table_name,' to ',table_name,'_old;')
FROM information_schema.tables
WHERE table_name like 'webform%'
and table_schema='weiss_db_new'
zadziała.
Czy rozważałeś użycie komponentu Akeeba Admin Tools dla Joomla! a następnie użycie Edytora prefiksów bazy danych do zmiany prefiksów tabel działa bardzo dobrze. Narzędzia administratora Akeeba mogą być użyte do zabezpieczenia twojej Joomla! instalacja
Akeeba można uzyskać here
- 1. Wyświetlanie wszystkich tabel w bazie danych
- 2. MySQL typ danych w bazie
- 3. Domyślne szyfrowanie AES dla wszystkich tabel w bazie danych Mysql
- 4. Ile rekordów/tabel mogę mieć w bazie danych 1 gb?
- 5. Czy mogę zmieniać nazwy witryn w WebMatrix?
- 6. Dołącz 3 tabel w bazie danych SQLite
- 7. Lista wszystkich tabel w bazie danych
- 8. Jak przechowywać ostrzeżenia MySQL w bazie danych?
- 9. Jak mogę uruchomić plik tekstowy SQL w bazie danych MySQL?
- 10. Lista wszystkich tabel w bazie danych
- 11. Zapisywanie danych w języku arabskim w bazie danych MySQL
- 12. Jak dodać prefiks wszystkich tabel w mysql
- 13. Jak mogę zbiorczo zmieniać nazwy plików w PowerShell?
- 14. Jak mogę edytować/zmieniać nazwy kluczy podczas json.load w pythonie?
- 15. Zmień nazwy kolumn w bazie danych PostgreSQL
- 16. Francuskie znaki w bazie danych MySQL
- 17. Łączenie tabel MYSQL na podstawie danych kolumny i nazwy tabeli
- 18. Pobierz nazwy tabel z bazy danych
- 19. projekt pola tabeli w bazie danych mysql?
- 20. Kompleksowe sortowanie w bazie danych MySQL
- 21. Jak zaktualizować klucz obcy w bazie danych mysql
- 22. Aktualizacja bazy danych Dot Net Entity Framework nie powoduje utworzenia tabel w bazie danych mysql.
- 23. skrócić całą tabelę w bazie danych mysql
- 24. Łączenie dwóch tabel w mysql
- 25. Baza danych EntityFramework Baza danych pierwszego podejścia, pluralizująca nazwy tabel
- 26. jak używać wyjątek rzucać w bazie danych mysql połączyć
- 27. Jak przechowywać obrazy w bazie danych mysql za pomocą php
- 28. Jak utworzyć listę tabel na podstawie nazwy kolumny w sybase?
- 29. Wyszukiwanie wieloznaczne zaszyfrowanych danych w bazie danych MySQL?
- 30. Tworzenie tabel w bazie danych sqlite na Androidzie
i co się dzieje, gdy jedna z nazw rzędów ma „jmla_” w nim? Albo gorzej, jeśli dane tam gdzieś tam są? –
1. Nigdy nie widziałem tej sprawy w praktyce 2. Moje rozwiązanie stało się kolejną dobrą rzeczą, zmieniając punkt na nieistniejącą bazę danych. –
Chodzi o to, że gdy istnieje lepsze rozwiązanie, nie warto ryzykować prostego znalezienia i zamiany. Rozwiązanie może prowadzić do problemów trudnych do debugowania w przyszłości. –