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

Langage SQL Discussion :

Limiter le nombre de lignes à supprimer avec SQL ou oracle


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Limiter le nombre de lignes à supprimer avec SQL ou oracle
    Bonjour;

    Dans une table qui ne possède pas de clé primaire (une table qui peut avoir des lignes identiques) je souhaite supprimé une seule ligne parmi celles tourvées.

    Je vous remercie d'avance pour vos réponses.

  2. #2
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    salut,

    alors essai ca peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM ta_table WHERE nom= 'le_nom' AND prenom = 'le prenom';
    a+
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Je vous remercie bcp pour votre réponse, mon problème est :
    j'ai les même lignes! même nom, même prénom, même adresse ...

    Citation Envoyé par gantec Voir le message
    salut,

    alors essai ca peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM ta_table WHERE nom= 'le_nom' AND prenom = 'le prenom';
    a+

  4. #4
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    alors tu pourrai mieu expliquer ton souci alors ???
    montre le code de ta création de tables et explique un peu mieu !!

    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    voilà le code de création de ma table
    CREATE TABLE table_name (MEDIAS_DISPO VARCHAR2 (10),
    CIVILITE VARCHAR2 (13),
    PRENOM VARCHAR2 (38),
    NOM VARCHAR2 (38),
    ADRESSE VARCHAR2 (38),
    CP VARCHAR2 (5),
    VILLE VARCHAR2 (32),
    PAYS VARCHAR2 (38),
    TELEPHONE_PORTABLE VARCHAR2 (15),
    EMAIL VARCHAR2 (45),);

    Citation Envoyé par gantec Voir le message
    alors tu pourrai mieu expliquer ton souci alors ???
    montre le code de ta création de tables et explique un peu mieu !!


  6. #6
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par flavia Voir le message
    Bonjour;

    Dans une table qui ne possède pas de clé primaire (une table qui peut avoir des lignes identiques) je souhaite supprimé une seule ligne parmi celles tourvées.

    Je vous remercie d'avance pour vos réponses.
    explique un peu ton souci !

    tu veux trouver une ligne (ex: lincoln, burrows, ohio) et l'effacer c'est ca? quel sont tes critères de recherche ??
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Mon problème est que je veux supprimer une ligne, mais cette ligne peut être en double sur ma table, alors que je ne veux supprimer qu'une seule.

    Citation Envoyé par gantec Voir le message
    explique un peu ton souci !

    tu veux trouver une ligne (ex: lincoln, burrows, ohio) et l'effacer c'est ca? quel sont tes critères de recherche ??

  8. #8
    Membre régulier Avatar de gantec
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 89
    Points
    89
    Par défaut
    d'accord, alors je te propose ca :

    dans ton INTERST, tu met ce code

    ca te permet de savoir à quelle heure a été faite l'insertion et comme ca tu pourra faire dans ta requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT.....WHERE NOW = ?? ;
    a+
    .:: GanTec ::.
    Quand on espère rien de rien et qu'on gagne le paquet, ça c'est le destin

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 098
    Points : 28 409
    Points
    28 409
    Par défaut
    Tu trouveras dans ce document des réponses à tes questions :
    Les doublons
    Sources de pollution des données, les doublons sont souvent un vrai casse tête à l'utilisateur novice en SQL... Voici un panorama des méthodes de détection et d'éradication des doublons...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 113
    Points
    113
    Par défaut
    A mon avis il faut absolument éviter des doublons non identifiables au sein d'une table. On voit tout de suite le problème avec cet exemple. De toute façon tout objet peut être identifié par une caractéristique. Il ne faut donc pas hésiter à l'utiliser. Si ce n'est pas évident à trouver alors il faut créer un identificateur virtuel comme par exemple une colonne avec une valeur numérique qui s'incrémente au fur et à mesure qu'une insertion est effectuée.

    Cela ne sert à rien d'avoir deux fois une même information, une seule occurence suffit.

    Dans le cas du client, je conseille d'utiliser une colonne identifiant comme clé primaire qui permettra de bien identifier le tuple. Par exemple un client Dupont Jean d'identifiant 1 ne sera pas le même que Dupont Jean avec l'identifiant 2

    Voici une structure possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE table_name (
    ID INTEGER PRIMARY KEY,
    MEDIAS_DISPO VARCHAR2 (10),
    CIVILITE VARCHAR2 (13),
    PRENOM VARCHAR2 (38),
    NOM VARCHAR2 (38),
    ADRESSE VARCHAR2 (38),
    CP VARCHAR2 (5),
    VILLE VARCHAR2 (32),
    PAYS VARCHAR2 (38),
    TELEPHONE_PORTABLE VARCHAR2 (15),
    EMAIL VARCHAR2 (45),);

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par sillycoder Voir le message
    A mon avis il faut absolument éviter des doublons non identifiables au sein d'une table. On voit tout de suite le problème avec cet exemple. De toute façon tout objet peut être identifié par une caractéristique. Il ne faut donc pas hésiter à l'utiliser. Si ce n'est pas évident à trouver alors il faut créer un identificateur virtuel comme par exemple une colonne avec une valeur numérique qui s'incrémente au fur et à mesure qu'une insertion est effectuée.

    Cela ne sert à rien d'avoir deux fois une même information, une seule occurence suffit.

    Dans le cas du client, je conseille d'utiliser une colonne identifiant comme clé primaire qui permettra de bien identifier le tuple. Par exemple un client Dupont Jean d'identifiant 1 ne sera pas le même que Dupont Jean avec l'identifiant 2

    Voici une structure possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE table_name (
    ID INTEGER PRIMARY KEY,
    MEDIAS_DISPO VARCHAR2 (10),
    CIVILITE VARCHAR2 (13),
    PRENOM VARCHAR2 (38),
    NOM VARCHAR2 (38),
    ADRESSE VARCHAR2 (38),
    CP VARCHAR2 (5),
    VILLE VARCHAR2 (32),
    PAYS VARCHAR2 (38),
    TELEPHONE_PORTABLE VARCHAR2 (15),
    EMAIL VARCHAR2 (45),);
    Finalement c'est facile! Il faut juste ajouter un paramètre ROWNUM

    Exemple :

    DELETE FROM ma_table WHERE ROWNUM<=1 AND .....(la suite de la condition)

    Je vous remercie tous pour votre aide

  12. #12
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Signé : Capitaine Jean-Luc Picard

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

Discussions similaires

  1. [VBA-E] Recuperer le nombre de lignes filtrées avec SubTotal
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/09/2006, 23h53
  2. Limiter le nombre des lignes en résultat
    Par Grand sorcier dans le forum Oracle
    Réponses: 1
    Dernier message: 11/07/2006, 14h30
  3. Limiter un nombre de lignes
    Par Trunks dans le forum Access
    Réponses: 5
    Dernier message: 25/01/2006, 13h29
  4. [C#] Limité le nombre de lignes dans une DataView ...
    Par maitrebn dans le forum Accès aux données
    Réponses: 5
    Dernier message: 07/11/2005, 23h57
  5. Limiter le nombre de Ligne d'un RichEdit
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2004, 10h16

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