[MySQL] rozjechane tabele w bazie

Tylko tematy nie mieszczące się powyżej.
Awatar użytkownika
mate_haru
Sędziwy Jeż
Sędziwy Jeż
Posty: 47
Rejestracja: 05 paź 2006, 12:42
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: Fluxbox
Architektura: x86_64
Kontakt:

[MySQL] rozjechane tabele w bazie

Post autor: mate_haru »

Witam!
Pisze dosc duza aplikacje i duzo siedze w konsoli bawiac sie tabelami w mysqlu. Ustawilem kodowanie na utf8 dzieki czemu moge zamieszczac w tabelach dane z polskimi znakami... i tu znajduje sie moj problem. Jesli w tabeli nie znajduja sie polskie znaki - jest wszystko ok (przed ustawieniem set names utf8 ):

Kod: Zaznacz cały

+----+-------------------+--------------------------+
| ID | TYPE              | PRODUCT_TYPE_DESCRIPTION |
+----+-------------------+--------------------------+
|  1 | GRAPHIC_CARD      | Karta graficzna          | 
|  2 | MAIN_BOARD        | P?yta g?�wna             | 
|  3 | MEMORY            | Pami??                   | 
|  4 | MONITOR           | Monitor                  | 
|  5 | POWER_SUPPLY_UNIT | Zasilacz                 | 
|  6 | PRINTER           | Drukarka                 | 
|  7 | PROCESSOR         | Procesor                 | 
|  8 | SOUND_CARD        | Karta d?wi?kowa          | 
+----+-------------------+--------------------------+
i po:

Kod: Zaznacz cały

+----+-------------------+--------------------------+
| ID | TYPE              | PRODUCT_TYPE_DESCRIPTION |
+----+-------------------+--------------------------+
|  1 | GRAPHIC_CARD      | Karta graficzna          | 
|  2 | MAIN_BOARD        | Płyta główna          | 
|  3 | MEMORY            | Pamięć                 | 
|  4 | MONITOR           | Monitor                  | 
|  5 | POWER_SUPPLY_UNIT | Zasilacz                 | 
|  6 | PRINTER           | Drukarka                 | 
|  7 | PROCESSOR         | Procesor                 | 
|  8 | SOUND_CARD        | Karta dźwiękowa        | 
+----+-------------------+--------------------------+
czemu sie to tak rozjezdza? i jak to naprawic? Przyznam, ze na dluzsza mete jest to niezwykle irytujace...
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [MySQL] rozjechane tabele w bazie

Post autor: el.pescado »

To pewnie błąd w programie klienckim mysql. Chodzi o to, że polskie litery w kodowaniu utf8 zajmują po 2 bajty każda, i mysql, obliczając szerokość kolumny liczy bajty a nie litery, przez co wychodzi mu, że należy wstawić mniej spacji niż rzeczywiście potrzeba (należy zauważyć że w każdej kolumnie brakuje dokładnie tyle spacji, ile jest w danym wierszu polskich znaków).

Ciężko to samemu naprawić - trzebaby poprawiać źródła programu. Za to możesz skorzystać z graficznego odpowiednika - MySQL Query Browser (jest w repozytorium), który nie ma takiego problemu.
Awatar użytkownika
mate_haru
Sędziwy Jeż
Sędziwy Jeż
Posty: 47
Rejestracja: 05 paź 2006, 12:42
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: Fluxbox
Architektura: x86_64
Kontakt:

Odp: [MySQL] rozjechane tabele w bazie

Post autor: mate_haru »

Aczkolwiek zauwazylem, ze w innych bazach juz takiego problemu nie ma pomimo tego, ze sa w ich tabelach polskie znaki... Problem jest wiec co najmniej dziwny. Tylko w tej konkretnej bazie jest problem. Porownywalem wyniki polecenia

Kod: Zaznacz cały

show create table [nazwa_tabeli]
i

Kod: Zaznacz cały

show create database [nazwa_bazy]
w roznych bazach i szczegolnych roznic nie widze. Wszedzie tabele i bazy tworzylem na podobnej zasadzie :-|
ODPOWIEDZ

Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości