6
votes

Est-il possible de créer une colonne ID d'incrément automatique dans la vue MySQL?

J'ai créé une vue dans MySQL. Mais maintenant, mon exigence est de créer une colonne d'identité dans cette vue qui devrait être une incrémentation automatique.

Ma vue actuelle est la suivante: - xxx

maintenant je veux une colonne d'identification colonne qui devrait être auto_incrimentation dans la nature. Comment devrais-je faire ça? Merci d'avance.


3 commentaires

Au fait, je pense que cette question est une duplication: Stackoverflow.com/Questtions/1964811/ROW-RANK-IN-A-MYSQL-Voir / ...


Réponse courte: Non. Stackoverflow.com/Questtions/2808759/...


Dupliquer de Stackoverflow.com/Questtions/2808759/...


4 Réponses :


5
votes

Vous pouvez le simuler avec quelque chose comme celui-ci dans votre sélection:

SELECT @rownum:=@rownum+1 AS rownum, dummy.*
FROM (SELECT @rownum:=0) r, dummy;


2 commentaires

Remarque: cela énumérera toutes les lignes de votre résultatsset, indépendante de l'ordre de votre requête réelle!


Merci pour une réponse rapide. Mais quand je crée la vue MySQL donne une erreur: - La sélection de la vue contient une variable ou un paramètre.



2
votes

Affichage de la base de données est une copie miroir de nos données de notre base de données. En réel, cela n'existe pas. Il a la même structure que la table principale

Sa structure ne peut pas changer


1 commentaires

Merci lokesh. Pouvons-nous créer une fonction pour faire cela?



-1
votes

Sélectionnez @ROWNUM: = @ ROWNUM + 1 'Autoid', M.Mediathumbnilurl, Q.SurveyID à partir de (Sélectionnez @ROWNUM: = 0) R, MEDIA M Joindre la question Q sur M.MediAutoid = Q.BackgroundImageId;


0 commentaires

0
votes

Vous pouvez utiliser la fonction "UIID ()" qui vous fournira un identifiant unique (alphanumérique) identifié.

Vérifiez ceci: https://stackoverflow.com/a/45963661/6083044


1 commentaires

Il y a un inconvénient majeur avec cette solution: les UUIDS changent à chaque fois que vous accédez à la vue. (BTW, ne répondez pas aux doublons des questions avec la même réponse, le drapeau / voter pour fermer les nouvelles questions en tant que duplicata de la plus ancienne.)