Condividi
Creare un ID univoco in modo casuale come chiave primaria di una tabella
Vorrei riuscire a creare in modo casuale (random) un numero intero che serva da identificativo univoco (ID unique identifier) per la chiave primaria (PK primary key) di una tabella usando come database MySql, qualcuno di voi conosce un metodo comprovato che riesca a far questo?
Risolta
2
MySql
26-03-2019
1 Risposta
3113 Visite
+1
Risposte ( 1 approvate )
Potresti utilizzare la funzione
UUID()
di MySQL, la quale restituisce un valore di 36 caratteri che può essere utilizzato come identificativo univoco, ovvero l'ID, una sorta di GUID per MySql.Se desideri necessariamente utilizzare un numero intero come ID, devi crearti una funzione ad hoc, una sorta di getRandomID() che dovrai richiamare nelle tue query INSERT per generare automaticamente la primary key del nuovo record.
Detta funzione potrebbe usare la funzione
RAND()
di MySql per generare il numero intero casuale e successivamente associare un controllo che verifichi che il numero ottenuto non sia già presente tra gli ID esistenti (chiavi primarie) dei records della tua tabella MySql, in tal caso la funzione deve essere richiamata ricorsivamente sino a quando non ottieni l'intero come identificativo univoco non ancora presente, dopodiché potrai eseguire la INSERT ed essere così certo che il nuovo record inserito avrà una chiave primaria univoca, diversa da tutte le altre.