IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

La notion de Rowid existe-t-elle en MySql ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut La notion de Rowid existe-t-elle en MySql ?
    Bonjour,

    Issu du monde Progress, une fonctionnalité souvent utilisée est le ROWID: un champ interne permettant d'identifier un enregistrement de façon unique, et surtout de le retrouver très rapidement.

    En Progress, on utilisait par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIND CLIENT WHERE ROWID(CLIENT) = vr_rowid
    Soit en MySql quelque chose qui ressemblerait à
    SELECT * FROM CLIENT WHERE ROWID(CLIENT) = vr_rowid
    Merci d'avance.
    André.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    non cela n'existe pas sous MySQL

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Merci. Dommage....

    N'y a-t-il rien d'équivalent, voire vaguement approchant ?

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    créer un champ supplémentaire dans ta table (auto-incrementé ?) pour différencier tes enregistrements?

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 008
    Points : 23 684
    Points
    23 684
    Par défaut
    Bonjour,

    Non, malheureusement, il n'y a rien d'approchant "en l'état" dans les tables MySQL.
    Toutefois, il y a 2 possibilités pour simuler le rowid :
    1. ajouter une colonne auto-incrémentée (l'auto-incrément devenant alors un rowid) ;
    2. simuler un rowid à l'aide de variables.

    Pour la seconde solution, ça revient à exécuter le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SET @currentRow = 0;
    SELECT @currentRow := @currentRow + 1 AS rowid, colonne1, colonne2, ...
    FROM ma_table
    ORDER BY...
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Ok. Je m'oriente donc vers une gestion manuelle.

    1. J'ai créé une table prorowid contenant un champ prorowid auto-increment.
    2. Chaque table mysql comporte le champ prorowid

    J'essaie de faire la chose suivante pour chaque insert:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    START TRANSACTION;
    INSERT INTO prorowid () values (); #incrément
    INSERT INTO client (<mes champs...>,prorowid) values (<mes valeurs...>,mysql_insert_id());
    COMMIT;
    Mais la fonction mysql_insert_id() ne semble pas connue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    MySQL a répondu:Documentation
    #1305 - FUNCTION elics.mysql_insert_id does not exis
    Une petite idée ?

    Merci,
    André.

  7. #7
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    mysql_insert_id() est, à ma connaissance, une fonction php.
    En MySQL c'est LAST_INSERT_ID()
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Merci. Effectivement, cela fonctionne mieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/01/2012, 11h00
  2. Fonction leading existe t-elle ?
    Par Alexiel2 dans le forum Qt
    Réponses: 4
    Dernier message: 24/10/2007, 20h20
  3. La Securité Maximale existe t-elle sur Apache ?
    Par vacknov dans le forum Apache
    Réponses: 2
    Dernier message: 26/03/2007, 21h45
  4. [JavaScript] un variable existe-t-elle ?
    Par SpaceFrog dans le forum Contribuez
    Réponses: 3
    Dernier message: 27/02/2007, 14h54
  5. Réponses: 5
    Dernier message: 24/02/2006, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo