Mysql
 sql >> Base de données >  >> RDS >> Mysql

éviter d'insérer simultanément plusieurs mêmes identifiants dans mysql

Vous souhaitez utiliser une séquence .

Deux mises en garde :

  • Le AUTO_INCREMENT la fonctionnalité décrite dans l'article n'est pas standard et peut entraîner des problèmes de portabilité lors du passage à une autre base de données.

  • Si un INSERT est abandonné, un numéro de la séquence est encore consommé, vous pouvez donc vous retrouver avec des trous dans la séquence. Si cela est inacceptable, utilisez une séquence générée automatiquement pour la clé primaire (de substitution) et ajoutez une carte distincte de cette clé au numéro de séquence "officiel", en appliquant l'unicité dans l'index de cette table.

L'alternative est d'appliquer UNIQUE ness dans la base de données, utilisez un TRANSACTION ISOLATION LEVEL approprié et ajoutez une logique d'application pour gérer l'échec de INSERT .