Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Szybka zmiana porównywania napisów we wszystkich tabelach
Forum PHP.pl > Forum > Bazy danych > MySQL
michal89
Witajcie. Potrzebuję fachowej porady. Mam do zmiany porównywanie napisów w ponad 1000 tabelach. Nie uśmiecha mi się ręczna ich zmiana. Jest jakiś szybszy sposób, żeby to zrobić np poprzez jakieś zapytanie mysql? chciałbym zmienić metodę porównywania napisów z latin1_swedish_ci na latin2_general_ci. Pozdrawiam
webdice
  1. SHOW TABLES


oraz

  1. ALTER TABLE `tabela` DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci
michal89
Nie wiem, czy dobzre zrozumiałem, za pomocą takiego polecenia będę mógł zmienić sposób porównywania tylko pojedynczej tabeli. Mi chodziło o to, zeby zmienić od razu wszystkie w bazie, ponieważ nie chcę ręcznie zmieniać po jedej.
webdice
  1. <?php
  2.  
  3. $base = 'tests';
  4.  
  5. mysql_connect  ('localhost', 'root', '');
  6. mysql_select_db ($base);
  7.  
  8. $query = mysql_query ("SHOW TABLES") or die (mysql_error ());
  9.  
  10. while ($row = mysql_fetch_assoc ($query))
  11. {
  12. $query2 = mysql_query ('ALTER TABLE `' . $row['Tables_in_' . $base] . '` DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci') or die (mysql_error ());
  13. }
  14.  
  15. ?>


Pamiętaj, tabele muszą być w tej samej bazie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.