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

SQL Firebird Discussion :

Tester si une table est vide [FAQ]


Sujet :

SQL Firebird

  1. #1
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut Tester si une table est vide
    J'ai besoin de tester si une table est vide. Je peux bien sûr utiliser une requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT (*) FROM MATABLE
    ,
    mais si la table contient beaucoup de données, c'est long. N'y aurait-il pas une autre manière plus rapide (SQL ou spécifiquement Interbase) ?.

    merci d'avance
    Roland

    PS J'utilise Interbase 6[/code]
    Roland

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Pourquoi compter les éléments ?? si vous voulez juste savoir si la table est vide faite un select et regardez s'il y a un résultat ou non, celà évite de balayer toute la table avec un count...

    Par contre suivant la méthode d'accés (et notamment ODBC) il est possible (il me semble) que celui ci oblige interbase à tout envoyer ce qui ne serait pas terrible.

    Donc le plus simple est encore de faire une PS
    avec dedans juste un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    FOR select IDColonne from MaTable INTO :ID
      DO
      begin
        suspend;
        exit;
      end
    qui renvoit une ligne si la table en contient sinon renvoie rien...

    ou encore ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 1 from rdb$database where exists (select * from MaTable)
    Qui renvoit 1 si la table contient des données et renvoit rien si la table est vide.
    Bref que de solutions

  3. #3
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Bref que de solutions
    Je n'en doutais pas, mais je ne regrette rien, je n'aurais pas trouvé tout seul .C'est pour ça qu'il y a des experts. Merci infiniment !

    J'ai pris la dernière solution, je garde l'autre sous le coude.

    Un détail : j'ai dû nommer le champ renvoyé, ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 1 as ch1  from rdb$database where exists (select * from MaTable)
    Roland

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/02/2015, 16h57
  2. Tester si une table est vide
    Par majudis dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/02/2010, 09h52
  3. tester si une table est vide
    Par majudis dans le forum IHM
    Réponses: 1
    Dernier message: 07/12/2009, 12h10
  4. [langage] Comment tester si une chaine est vide
    Par |Bio dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 15h05
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17

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