sql >> Database >  >> RDS >> Mysql

Hoe maak je een unieke willekeurige integer-ID voor de primaire sleutel voor een tabel?

Als reactie op: "Omdat ik die waarde wil gebruiken om te coderen naar Base62 en die vervolgens te gebruiken voor een id in een url. Als ik automatisch verhoog, kan het voor de gebruiker duidelijk zijn hoe de url-id wordt gegenereerd."

Als veiligheid je doel is, zal het niet helpen om Base62 te gebruiken, zelfs met een "willekeurig" gegenereerd nummer.

Een betere optie zou zijn:

  • Vind het wiel niet opnieuw uit -- gebruik AUTO_INCREMENT
  • Gebruik vervolgens een cryptografische hashfunctie + een willekeurig gegenereerde string (verborgen in de db voor die specifieke url) om de uiteindelijke "unieke id voor die url" te genereren


  1. Voordelen van het gebruik van Microsoft Access-sjablonen

  2. Column Store-plannen

  3. querybuilder:IN-component met samengestelde kolommen

  4. Hoe APPROX_COUNT_DISTINCT() werkt in SQL Server