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

DB2 Discussion :

[DB2] create table... if not exists ?


Sujet :

DB2

  1. #1
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut [DB2] create table... if not exists ?
    Salut!

    En MySQL ou en Oracle je sais plus, il y a possibilité de créer une table avec uen condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table if not exists matable...
    ne génère pas d'erreur et ne recrée pas la table si elle existe déjà.

    Existe-t'il un mécanisme identique en DB2 (as400) ?

    Parce que j'envoie un fichier de requêtes "batch" à un webservice qui exécute ces requêtes à la queue leu leu. Il peut y avoir du create table dans le batch. Et j'aimerai pas que ça me plante le bazar, et je ne veux pas faire un drop table avant!
    Membre éclairé, lol !

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Je suis pas sur..
    mais peut etre avec : create or replace table !!!!!

    L'erreur est humaine, et je suis très humain!

  3. #3
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    hmmm... si ça existe,
    create or replace, ça crée ou ça remplace (= efface et recrée) la table.

    alors que create if not exists crée la table si elle n'existe pas, sinon ne fait rien.
    Membre éclairé, lol !

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    A ok...
    Cela viens peut etre de ta version de MySQL alors...
    le If not existe a été mis en place depuis la 3.22.

    http://www.dwam.net/docs/mysql3.23/manuel_CREATE_TABLE.html

    Vas surfer par là.. tu devrait trouver réponse à ta question

    L'erreur est humaine, et je suis très humain!

  5. #5
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut Re: [DB2] create table... if not exists ?
    Citation Envoyé par si tu lisais ce que j'ai mis plus haut :P
    En MySQL ou en Oracle je sais plus, il y a possibilité de créer une table avec uen condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table if not exists matable...
    ne génère pas d'erreur et ne recrée pas la table si elle existe déjà.

    Existe-t'il un mécanisme identique en DB2 (as400) ?

    j'trouve que ta signature de colle bien à la peau
    Membre éclairé, lol !

  6. #6
    Dov
    Dov est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2002
    Messages : 48
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Sur DB2 UDB (plateformes micros), si tu lances une instruction "create table db2admin.toto" alors que la table db2admin.toto existe déjà, tu auras une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL0601N Le nom de l'objet à créer est identique au nom "DB2ADMIN.TOTO" de type "TABLE" existant.  SQLSTATE=42710
    Je suis convaincu que ce doit être la même chose sur DB400.

    Bonne continuation

    Dov

  7. #7
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    ouaiche le problème c'est que je voulais un truc "propre". Dès qu'il y a une erreur SQL, je stoppe le traitement et je renvoie l'erreur, donc ça le fait pas, et si je ne capte pas les erreurs sur une création de table, parfois ça peut être autre chose

    bon pour le moment je pense pas qu'il y aura des tables créées sur mysql à renvoyer sur DB2, mais on sait jamais si un jour...
    Membre éclairé, lol !

Discussions similaires

  1. create table if not exists
    Par olibara dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 18/03/2010, 16h01
  2. AS400 Probleme de Create table if not exists
    Par mczikas dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 24/02/2009, 17h04
  3. [XI R2] Table does not exist
    Par Julien59 dans le forum Designer
    Réponses: 1
    Dernier message: 25/09/2008, 16h27
  4. Create procedure if not exists ?
    Par mappy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2008, 17h57
  5. provider 0x80040E37 table does not exist
    Par steph04 dans le forum ASP
    Réponses: 8
    Dernier message: 29/04/2005, 10h56

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