martedì 9 febbraio 2010

MySQL: Generare una chiave primaria per una tabella (versione migliorata)


Ciao a tutti,

l'altro giorno avendo un po' di tempo per sperimentare nuove e più comode soluzioni, sono voluto ritornare su un argomento che avevo trattato qualche mese fa in questo post, la generazione di una chiave primaria per le tabelle MySQL.

Siccome l'altra volta avevamo trattato una soluzione veloce, quindi non troppo elegante, per la gestione del problema ho ripensato alla cosa ed ho trovato che la cosa migliore fosse integrare il codice in una funzione, comodamente richiamabile, in qualsiasi punto del codice, e standardizzata.

Allego quindi il codice di creazione della procedura:
CREATE DEFINER=`root`@`localhost` FUNCTION `RowIdGen`() RETURNS CHAR(30) CHARSET latin1
DETERMINISTIC
BEGIN
RETURN CONCAT('PREF',DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i%s'),LPAD(FLOOR(1 + RAND() * 999999),7,0),LPAD(@numero := IFNULL(@numero,0) + 1,5,0));
END$$

DELIMITER ;
Non sto a ridiscutere il codice in quanto è già spiegato nel dettaglio nel vecchio post.
Spero di esservi stato utile, e se avete voglia cliccate sui banner pubblicitari.

Ciao

Wsc

Nessun commento: