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 1
MySql 26-03-2019 1 Risposta 2947 Visite +1
Marco Mastroandrea

Marco Mastroandrea

Autore di questa domanda

Risposte ( 1 approvate )

  1. Giacomo Barrile
    +1
    26-03-2019 18:55:27
    Rispondi

    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.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva