banjalukaforum.com

Dobrodošli na banjalukaforum.com
Danas je 28 Apr 2024, 02:12

Sva vremena su u UTC [ DST ]




Započni novu temu Odgovori na temu  [ 5 Posta ] 
Autoru Poruka
 Tema posta: SQL Collation
PostPoslato: 26 Mar 2013, 23:26 
OffLine
Majstorski kandidat
Majstorski kandidat
Korisnikov avatar

Pridružio se: 01 Jan 2007, 21:17
Postovi: 308
Lokacija: Mejdan
Pozdrav, imam problem, kreirao sam tabele medjutim zaboravio sam neke stvari, po defaultu sam napravio bazu (collation je bio latin1)
kreirao sam preko 20 tabela (svaka sada ima preko 250 atributa, raznih atributa od varchar(45), varchar(255), double(3,2), int(11) itd da ne nabrajam sve) treba mi sve u UTF-8 formatu, ja sam isao alter shema, collation prebacio na utf-8 default collation, zatim svaku tabelu prebacio na utf-8, i to je sad uredno, kad kreiram novi atribut on je u utf-8, ali problem su ovi stari, preko 5000 atributa mi je na ostalno na latin1 a treba mi sve na utf-8, rucno ne bi za 3 mjeseca isprebacivao sve a kad pokrenem skriptu:

ALTER TABLE ime_tabele CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
izbaci mi error 1118. Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some colums to TEXT or BLOBs.
da li je to u pitanju ovi varchar(255), ja sam im sam dodijelio tu vrijednost 255 ako je do toga opet problem, 80% atributa po tabeli su varchar , opet bi mi trebala vjecnost...

bilo kakav prijedlog?

Unaprijed zahvalan.

_________________
ExYu RoCk is the best music.


Vrh
 Profil  
 
 Tema posta: Re: SQL Collation
PostPoslato: 27 Mar 2013, 06:59 
OffLine
Veteran
Veteran
Korisnikov avatar

Pridružio se: 28 Feb 2006, 02:36
Postovi: 2982
ALTER... MODIFY?

http://www.mysqlperformanceblog.com/200 ... cter-sets/

_________________
Popokatepetl je napisao:
...мени очи углавном служе да не упаднем у шахт ходајући улицом...


Vrh
 Profil  
 
 Tema posta: Re: SQL Collation
PostPoslato: 27 Mar 2013, 13:22 
OffLine
Majstorski kandidat
Majstorski kandidat
Korisnikov avatar

Pridružio se: 01 Jan 2007, 21:17
Postovi: 308
Lokacija: Mejdan
E prijatelju hvala na odgovor, radi modify savrseno ako ces ici jednu po jednu to sam prvo i probao, medjum kod modify je problem sto moras sve kolone izmjenjati rucno 1 by 1, ako selektujem sve odjednom izbaci mi taj error o row size. (logic go home you're drunk) da jedan pojedan a neda sve odjednom...

ja izvezem bazu u .sql otvorim pomocu notepad i
find all: latin1
replace all: utf8
save
kad je uvozim bilo preko workbencha, phpmyadmin izbaci mi taj isti error da su neke kolone preduge.

zatim sam otisao na dev.mysql.com i nasao:

For example, utf8 characters require up to three bytes per character, so for a CHAR(255) CHARACTER SET utf8 column, the server must allocate 255 × 3 = 765 bytes per value. Consequently, a table cannot contain more than 65,535 / 765 = 85 such columns.

ne mozes vjerovati 85*3=255 :angry4:

onda sam opet otisao i .sql fajl otvorio pomocu text editora
find all 255:
replace all: 254
save
uradio import i savrseno i bezprijekorno radi, sve je table default kad alter tabelu pa pogledam kolone.

p.s. koliko sam shvatio ukoliko samo modify jednu po jednu on nju spusti na maximum granicu bita dozvoljenih po utf8 zapisu i uspije je konvertovati, medjutim ako selekujes sve i pokusas odjednom opet izbaci error da to sto prelazi varchar 255 (za 1 karakter) bilo potrebno prebaciti u blob ili text, ali opet bi mi trebala vjecnost zato sto cine vecinu. Uglavnom ovako moze i radi najnormalnije.

_________________
ExYu RoCk is the best music.


Vrh
 Profil  
 
 Tema posta: Re: SQL Collation
PostPoslato: 28 Mar 2013, 07:36 
OffLine
Veteran
Veteran
Korisnikov avatar

Pridružio se: 28 Feb 2006, 02:36
Postovi: 2982
Bitno da si rijesio, zanimljivo "citanje" :)

Meni bi prvo palo na pamet napisati php skriptu koja bi kupila tabelu po tabelu u nekoj petlji i izmijenjala.

Sad sam radoznao, posto sam prije nekoliko dana citao neki clanak o PL/SQLu (o kome nemam pojma :) ) pa me zanima da li bi se pomocu njega mogla napisati procedura koja bi se izvrsavala na bazi te u slucaju 5 000 tabela, smanjilo vrijeme prepravljanja?
Pitanje iz radoznalosti za nekoliko high level DB developera sa foruma :)

_________________
Popokatepetl je napisao:
...мени очи углавном служе да не упаднем у шахт ходајући улицом...


Vrh
 Profil  
 
 Tema posta: Re: SQL Collation
PostPoslato: 16 Apr 2013, 13:22 
OffLine
Majstor
Majstor
Korisnikov avatar

Pridružio se: 10 Dec 2002, 20:07
Postovi: 1149
Lokacija: BL
Ja sam uveo praksu da koristim TEXT polje umjesto varchar, za sve vece od nekih 50 karaktera, bas iz tih nekih tehnickih razloga. Vjerovatno je sporije, ali kad moras misliti svaki put koliko si polje stavio u tabeli kad programiras interfejs, vrijedi, bar za male aplikacije.

_________________
*/

?>


Vrh
 Profil  
 
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 5 Posta ] 

Sva vremena su u UTC [ DST ]


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 7 gostiju


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Powered by phpBB® Forum Software © phpBB Group
Hosting BitLab
Prevod - www.CyberCom.rs