MySQL-ben azt, hogy tudom megcsinálni, hogy ha valaki felvisz egy adatot a táblába az egyedi számsort kapjon?
Az meg van, hogy Id, Auto_increment és mindig egy nagyobb számmal bővül de nem ezt akarom megtudni hanem azt, hogy ezt hogyan, pl.:fileid=126Aser45.
Ezt, hogy kell?
remélem érthető.
köszi a segítséget :)
Az ID miért nem jó?
Lehet generálni is, csak tök fölösleges, plusz oda kell figyelni, hogy ne legyen egyezés.
Ez megoldható pocsékolósan, hogy mindig előbb lekéred, hogy a random generált szerepel-e már, ha igen, újat generálsz és így tovább.
Vagy egyszerűen egyedire teheted az adott oszlopot és az adat bevitelkor ellenőrzöd, hogy nem dob-e hibát az SQL szerver. Ha hibát ad vissza, akkor újra generálsz.
Vagy egy viszonylag egyedi dolgot is beleveszel, ami miatt csökken az egyezőség lehetősége. Például az ID-t (ami insertnél ugye még nincs), vagy felhasználó nevet, esetleg e-mail címet ha ezek egyediek, de persze ezer más megoldás is lehet.
Igazából ez mind-mind halál fölösleges macera, eddig nem nagyon láttam olyat, ahol tényleg muszáj lett volna így generálni valamit a db-be.
Php-val generáltatsz random stringet pl:
$uid = uniqid();
vagy
$uid = md5(time());
Ez utóbbit mysql-ből is hívhatod:
... `uid` = MD5( UNIX_TIMESTAMP() ) ...
@Drone007: Na igen, de ezeknél nincs garancia arra, hogy tuti nem lesz ütközés. :)
Az md5 esetében ugye limitált a hossz, hiába rohadt kicsit rá az esély, attól még megvan.
md5(time()); <<< is tökéletes lehetne, de nem ártana végére szúrni még egy rand(100,999) -et.
md5(time().rand(100,999));
így kiszűrve ha véletlen egy időbe több user is ugyan azt kapja.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!