si tu veux utiliser un type qui ne génère pas de collisions pour une PK, utiliser le type GUID (Globally Unique IDentifier)
tu le génères depuis ton programme avant de faire l'insertion, et pas de souci, ça 1 chance sur quelque chose comme le nombre d'atomes sur la terre de provoquer une collision.
-- Edit : Même pas en fait, puisque dans les dernières version la date est stockée dans le chiffre, ce qui voudrait dire que tu génères 2^(128-6-60-1) GUID dans l'espace de 100 nanosecondes pour atteindre la demi-vie ^^
Y porte pas son nom pour rien, c'est juste une valeur aléatoire parmi [0-2^128[
En réalité, 122 sont réellement recaclulés à chaque fois (6 pour la version et la variante) et 60 pour le timestamp qui a une précision de 100 nanosecondes (ou alors des valeurs aléatoires, ça dépend de la version utilisée en fait)
Par contre c'est chiant à taper au clavier, ça ressemble à ça
{3F2504E0-4F89-11D3-9A0C-0305E82C3301}
RFC
http://tools.ietf.org/html/rfc4122
Message édité par MagicBuzz le 19-06-2008 à 16:49:07