Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] jak wygenerowac unikalny string
Forum PHP.pl > Forum > Bazy danych > MySQL
x11100b
mam pole typu char(10), i chce aby podczas dodawania rekordu do tabeli automatycznie zostalo ono wypelnione _unikalnym_ (nie losowym) stringiem (najlepiej skladajacym sie z liter alfabetu lacinskiego, cyfr oraz znaku minus)
someone.cool
ciekawe. Możesz mi przybliżyć do czego to ma być ? Łatwiej będzie mi to stworzyć...


Najlepiej było by kolejne dodawać....
erix
Twórz coś na zasadzie AUTO_INCREMENT z tą różnicą, iż do przechowania zawartości wykorzystujesz własny system liczbowy.

Tak robią np. YouTube, serwisy hostujące pliki, etc. Najlepiej utwórz do tego celu triggera, a jak konwersja? To zadanie domowe. winksmiley.jpg
x11100b
dziekuje za odpowiedzi, oczywiscie przypisywanie w tym miejscu czegos na zasadzie AUTO INCREMENT zdalo by agzamin, ale zapomnialem dodac ze nie mam pewnosci w jaki sposob generowane byly stringi w rekordach dodanych poprzednio.

wiem tylko ze wszystkie do tej pory sa unikalne (nie wiem w jaki sposob wygenerowane) i chce wygenerowac kolejny, unikalny.

widze ze problem jest dosyc skomplikowany - tymczasowo obszedlem to wypelniajac to pole wartoscia funkcji TIMESTAMP() ale jest to rozwiazanie tymczasowe, gdyz nie mam pewnosci, ze nie istnieje rekord o pewnej wartosci TIMESTAMP "z przyszlosci", i ze dodatkowo akurat w tej sekundzie nie zostanie dodany rekord. ale to juz jest sprawa prawdopodobienstwa winksmiley.jpg w kazdym badz razie dziekuje za odpowiedzi.

pozdrawiam.
maly_swd
a jak bys zrobil funkcje i w niej:
1. select md5(rand()) generujesz stringa z jakas tam wartoscia
2. ucinasz go do 10 znaow
3. robisz selecta z kolumny w ktorej masz te magiczne unikalne stringi
4. jesli nic nie zwroci to znaczy ze udalo sie wygenerowac cos unikalnego i wstawiasz to
5. jesli nie to od pkt 1.
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.