Hrvoje Novak u rubrici Programiranje od
uređen od Znatko

Guglam, čitam i ništa. Sve je to jedna zbrka od rješenja koja mi (još) ne rade. Zna tko kako se elegantno može cijela baza sa svim tablicama koja imaju polja u formatu Windows-1250 postaviti u charset UTF-8?

Naravno, treba sačuvati sve vrijednosti unutar tablica.

Našao sam jednostavan kod, ne kužim poantu, ali mi neće raditi.

alter table TABLE_NAME modify FIELD_NAME blob;

alter database DATABASE_NAME charset=utf8;

alter table TABLE_NAME modify FIELD_NAME varchar(255) character set utf8;

Je, stavio sam ja svoje podatke za table_name, filed_name, database_name....i padam već na prvom upiti u MySQL. Poruka o grešci ispisuje sljedeče:

error: BLOB/TEXT column 'ime' used in key specification without a key length

Pomagajte drugovi.

Prijavite se ili registrirajte kako biste odgovorili na ovo pitanje.

1 odgovor

+3 glasa
Duh Robot od

Pozdrav!

Jedan od načina je napraviti eksport(dump) cijele baze, zamijeniti default charset iz Windows-1250 u UTF-8 i importirati nazad u MySQL.

Ovisno o alatu i platformi na kojoj se radi, postupak se može razlikovati, ali u principu je vrlo slično.

Za sam eksport/import se može koristiti command line program "mysqldump", ako je korisnik upoznat s takvim načinom rada, a može se koristiti i neki od desktop ili web upravitelja MySQL bazom podataka poput "MySQL Workbench" za desktop ili "Adminer" za web.

Sama zamjena charseta se može jednostavno napraviti funkcijom "Search&Replace" unutar text datoteke koja se dobije prilikom eksportiranja baze u nekom tekst editoru. Za tu namjenu preporučujem program pod nazivom "Notepad++".

Moguće je da se prilikom importiranja neće neki specijalni znakovi dobro spremiti u bazu, pa je poželjno na vrh datoteke prije naredbe za kreiranje baze dodati naredbu "SET NAMES utf8;".

Primjer SQL skripte za kreiranje baze s UTF-8 charsetom bi mogao izgledati ovako:

SET NAMES utf8;
DROP DATABASE IF EXISTS `baza`;
CREATE DATABASE `baza`
USE `baza`;

DROP TABLE IF EXISTS `korisnici`;
CREATE TABLE `korisnici` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ime` varchar(25) NOT NULL,
  `prezime` varchar(50) NOT NULL,
  `e-mail` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Možda Vas zanimaju i ova pitanja...

2 odgovora 540 👀
1 odgovor 855 👀
Hrvoje Novak 30.06.2014. pitanje u rubrici Programiranje od Hrvoje Novak
1 odgovor 437 👀
1 odgovor 524 👀
1 odgovor 448 👀
Goran Dren 13.04.2014. pitanje u rubrici Web Hosting od Goran Dren
1 odgovor 408 👀
1 odgovor 457 👀
2 odgovora 2.1k 👀
2 odgovora 779 👀
Mirela Benić 29.09.2020. pitanje u rubrici Softver od Mirela Benić

🎂🎉

Znatko je u prosincu 2024. napunio svojih 11 godina postojanja!

Medijska platforma Znatko

NAJNOVIJE VIJESTI

Impressum | Znatkova redakcija

15.4k pitanja

25.0k odgovora

9.9k komentara

1.7k korisnika

...