Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] jak wygenerowac unikalny string
x11100b
post 1.11.2009, 13:10:40
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 20.08.2009

Ostrzeżenie: (0%)
-----


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)

Ten post edytował x11100b 1.11.2009, 14:08:07
Go to the top of the page
+Quote Post
someone.cool
post 2.11.2009, 00:41:31
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 31.01.2009

Ostrzeżenie: (0%)
-----


ciekawe. Możesz mi przybliżyć do czego to ma być ? Łatwiej będzie mi to stworzyć...


Najlepiej było by kolejne dodawać....
Go to the top of the page
+Quote Post
erix
post 2.11.2009, 12:51:45
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
x11100b
post 9.11.2009, 20:50:29
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 20.08.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
maly_swd
post 10.11.2009, 12:06:20
Post #5





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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.


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 23:28