12
votes

Comment fonctionne MySQL Auto Incrément?

Je crée simplement une nouvelle table à l'aide du navigateur de requête MySQL et vous avez remarqué qu'il y a une tick sous la colonne Auto Incretissement. Comment ça marche?

Lorsque vous ajoutez à la base de données de manière programmatique, puis-je simplement ajouter un numéro, puis la base de données incrémente automatiquement ce nombre?

Chaque fois qu'un nouvel utilisateur d'utilisateurs sur mon site, je souhaite que son identifiant client (entier uniquement) à l'incrément automatique, donc je n'ai pas à essayer de générer de manière aléatoire un nombre unique.

Peut-on être fait simplement?

Merci!


3 commentaires

Référence: dev.mysql.com/doc/refman/ 5.0 / FR / Exemple-incraction automatique.html


Merci! - Alors, je n'ai pas vraiment besoin de faire quoi que ce soit. Il suffira d'ajouter un numéro chaque fois qu'une nouvelle ligne est ajoutée? :)


Je ferais cette communauté pour les débutants ici.


5 Réponses :


16
votes

Lorsque vous ajoutez à la base de données de manière programmatique, puis-je simplement ajouter un numéro, puis la base de données incrémente automatiquement ce nombre?

Oui, c'est la façon dont auto_incrènement fonctionne.

  • La valeur sera incrémentée pour chaque nouvelle ligne

  • La valeur est unique, les doublons ne sont pas possibles

  • Si une ligne est supprimée, la colonne auto_incrènement de cette ligne ne sera pas réaffectée.

  • le auto_incrènement de la dernière ligne insérée est accessible à l'aide de la fonction MySQL last_insert_id () mais c'est doit être appelé juste après la requête d'insertion, dans la même connexion de base de données

    Référence MySQL


1 commentaires

Auto_Increment Les valeurs ne sont pas nécessairement uniques: SQLFIDDLE.com/#!2/ 85E93 / 1



0
votes

Oui, c'est l'objectif exact de auto_incrènement . Il examine tout ce qui est la valeur d'incrémentation actuelle pour cette table et stocke cette valeur plus 1 pour la nouvelle ligne qui se trouve automatiquement. Vous pouvez omettre ce champ à partir de vos relevés Insérer et MySQL le gérera pour vous pour chaque nouvelle ligne qui se trouve, donnant à chaque ligne son propre identifiant unique.


0 commentaires

1
votes

Lorsque vous activez l'incrément automatique, un ID sera toujours ajouté automatiquement chaque fois qu'un nouvel enregistrement est effectué. Exemple:

Si vous avez 1 enregistrement avec ID 1 de votre table et que vous ajoutez un nouvel enregistrement, l'ID sera automatiquement 2.


0 commentaires

4
votes

1 de plus, Vous pouvez également insérer votre propre valeur (c'est-à-dire votre valeur aléatoire).


0 commentaires

2
votes

Oui. Les colonnes auto_incrimentation fonctionnent comme se disent sur l'étain. Conseils

  • Lorsque vous insérez, utilisez null ou omettez la colonne

  • Utilisez last_insert_id () (ou équivalents API) pour obtenir la dernière valeur générée.

  • Pour des raisons de sécurité et de logique commerciale, il est généralement préférable de ne pas utiliser directement une valeur clé pour un identifiant client. Envisagez d'utiliser des touches client de substitution hachées / randomisées à la place.

    ta


0 commentaires