[MySQL] GUID / UUID w MySQL

0

Jak najwydajniej przetrzymywać GUID w bazie MySQL ?
Najprościej jest zrobić typ VARCHAR(36). Czytałem że można to zrobić dużo efektywniej.

0

guid to liczba.

0

Kiedy użyję funkcji uuid() w MySQL wyskakuje mi np coś takiego:
0c583f1a-5af6-102c-9016-f23f6439ef08
I jak ja to mam zapisać jako int czy bigint? (biginta nawet próbowałem ale nie da się)

0
worm87 napisał(a)

Kiedy użyję funkcji uuid() w MySQL wyskakuje mi np coś takiego:
0c583f1a-5af6-102c-9016-f23f6439ef08
I jak ja to mam zapisać jako int czy bigint? (biginta nawet próbowałem ale nie da się)

Bo BIGINT jest na to dwa razy za krótki :P

GUID do 16bajtowa liczba. A to co widzisz, to jej zapis szesnastkowy oddzielony myślnikami wg wzorca: 4B -2B - 2B - 2B - 6B

0

Powiedzmy, że zostawiłem to jako VARCHAR(36).
MySQL niestety nie wspomaga wstawiania tego jako indeksu, dlatego muszę sobie stworzyć trigger dla każdej tabeli. Tylko, że coś nie działa:

CREATE TRIGGER trigger_testowy CREATE TRIGGER tabela_testowa
FOR EACH ROW SET NEW.testowa_id = select uuid();

Co jest nie tak?

0

Tu masz w sumie krotka, ale tresciwa dyskusje na temat trzymania guidow w mysqlu. http://lists.mysql.com/mysql/165310

0

Ok. Można powiedzieć że sprawa przetrzymywania guid jest ciekawie opisana.
Ale to nie odpowiada na moje ostatnie pytanie :-/

0

Poniekad odpowiada, bo tam zdaje sie nie ma problemu z kluczem glownym ;)

0

Na siłę to można by zrobić jak tam jest napisane, tylko że musiałbym zmodyfikować wszystkie INSERTy kóre działają na danej tabeli, tak żebym sam wypełniał ten klucz.
Ale nie za bardzo mi się to uśmiecha

0

No ale i tak musisz go jakos wypelniac, wiec w czym problem? Chyba, ze juz je napisales...

PS. U mnie nie ma problemu z zalozeniem indeksu na varchar(36).

0
johny_bravo napisał(a)

Chyba, ze juz je napisales...

I tu mnie właśnie boli...

1 użytkowników online, w tym zalogowanych: 0, gości: 1