SQL - Comment trouver le plus grand nombre dans une colonne?

Permet de dire que j'ai les données suivantes dans la table Clients: (rien de plus)

ID   FirstName   LastName
-------------------------------
20   John        Mackenzie
21   Ted         Green
22   Marcy       Nate

Ce genre d'instruction SELECT peut me procurer le numéro 22, dans la colonne ID?

J'ai besoin de faire quelque chose de ce genre pour générer un IDENTIFIANT unique. Sûr que je peux laisser le système faire via l'auto-incrémentation, mais comment aurais-je obtenir la génération automatique d'ID?

J'ai pensé à "SELECT ID from Clients" et en comptant le nombre de lignes retournées, mais cela semble horriblement ineffecient et dans ce cas, il renvoie incorrectement "3", si j'ai besoin d'un ID unique de 23.

  • Grand stade, mais leurs réponses ne sont pas directement répondu à ma question. Ma méthode est la plus sûre de toute façon puisque je obtenir gratuitement un IDENTIFIANT, PUIS ajouter un enregistrement. Bien sûr, vous pourriez dire les opérations simultanées pourrait mess cette place par plusieurs programmes en obtenant le même "libre" de l'ID et de le réutiliser ... mais cela peut être évité par l'ajout d'un enregistrement ultra-rapide après l'obtention d'un IDENTIFIANT libre.
  • msaeed et quelques autres réponse à votre question exactement. La Question étant "SQL - Comment trouver le plus grand nombre dans une colonne?" et "Quelle sorte d'instruction SELECT peut me procurer le numéro 22, dans la colonne ID?". Corriger votre message pour le rendre plus clair sur vos intentions.
  • Nope. Je n'étais même pas parler de ces réponses, seulement ceux rexem souligné. Les autres réponses de parler de l'insertion de l'obtention de l'ID, qui n'est clairement pas ce que j'ai demandé. J'ai demandé de l'22 (nombre maximum), pas 23 (récemment peuplé ID).
  • Non, comme Brisbe42 expliqué votre méthode n'est pas sûre, car la base de données niveau d'isolation peuvent être définies pour permettre la lecture des données avant INSERTION/mise à JOUR s'engage. Si vous rencontrez des erreurs relatives à tenter d'insérer un non-clé primaire unique, j'espère que vous vous souvenez de cette question.
  • Bien obligé pour les pouces vers le haut. Merci.
  • Si cela peut nuire à la performance, vous pouvez envisager de transactions explicites si vous êtes préoccupé par la simultanéité et la duplication de l'IDs.
  • veuillez être prudent de reconnaître que la plus haute ID dans une table n'est pas nécessaire de les plus récemment entrés ou même une garantie que la prochaine ID plus après ce n'est pas déjà pris.
  • vous serait sage de ne pas dépendre de votre "super rapide" de la méthode. Les programmes devraient être déterministe dans la nature autrement ils sont sensiblement incorrect. Ce que vous avez à faire est de jeter l'Un de vos ACIDE principes. Si vous exécutez une seule base de données utilisateur de l'app, c'est bien. Tous les autres cas doivent utiliser des opérations atomiques.
  • pourriez-vous expliquer "comment aurais-je obtenir la génération automatique d'une pièce d'identité?" Vous n'auriez pas besoin de cela si vous êtes juste de l'insertion d'un nouvel enregistrement à la table de générer le prochain ID pour vous.
  • Pour la même question, comment ai-je pu également récupérer les valeurs correspondantes pour les deux autres colonnes, j'.e, FirstName=Marcy et LastName=Nate?

InformationsquelleAutor Robinicks | 2009-10-10