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 :

drop avant create table ?


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Par défaut drop avant create table ?
    Hello,
    En MySQL, on peut faire un DROP TABLE juste avant un CREATE TABLE pour s'assurer que la table que l'on va creer n'existe pas.
    Comment peux-t-on faire ca en FireBird ? En effet, j'obtiens un message d'erreur indiquant que j'essai de supprimer une table qui n'existe pas.. (Be oui je sais )

    Merci,
    Matthias

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * From Rdb$relations Where Rdb$relation_name='MATABLE'
    sinon si tu veux forcer la creation, tu fais un RECREATE

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Par défaut
    ok, merci, pour les tables un RECREATE marche.. presque parfaitement.
    Je suis maintenant confronter a plusieurs autres problemes.
    Je travaille sur une base de donnees firebird 1.5 avec SQL Manager 2005.

    - Comment faire pour droper la base de donnees alors que j'y suis connecter? Si ca n'est pas possible, comment faire pour droper la base de donnees sans y etre connecte ?

    - Lorsque je fais recreate sur ma table, les indexs semblent etre supprimer en meme temps. Sauf que quand je relance une 2e fois mon script, j'obtiens le message d'erreur suivant :
    This operation is not defined for system tables.Unsuccessful metadata update.
    Object INDEX is in use .
    Pour executer mon script a nouveau avec succes, je dois me deconnecter de la base et m'y reconnecter.

    - Autres question, pour les generateurs, comment est-ce que je peux faire pour avoir un IF EXIST

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    Citation Envoyé par ]matmat[
    - Comment faire pour droper la base de donnees alors que j'y suis connecter? Si ca n'est pas possible, comment faire pour droper la base de donnees sans y etre connecte ?
    tu supprimes le fichier

    Citation Envoyé par ]matmat[
    - Lorsque je fais recreate sur ma table, les indexs semblent etre supprimer en meme temps. Sauf que quand je relance une 2e fois mon script, j'obtiens le message d'erreur suivant :
    This operation is not defined for system tables.Unsuccessful metadata update.
    Object INDEX is in use .
    Pour executer mon script a nouveau avec succes, je dois me deconnecter de la base et m'y reconnecter.
    ça c'est parceque tu utilise un outil graphique mal conçu
    pour certaines opérations, il faut un accès exclusif à la base et ton outil graphique doit avoir une connexion active à ta base avec une autre transaction ouverte en plus de celle où tu lance le script
    Passe par isql et tout ira bien


    Citation Envoyé par ]matmat[
    - Autres question, pour les generateurs, comment est-ce que je peux faire pour avoir un IF EXIST
    va voir la FAQ et les tutoriels

  5. #5
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Par défaut
    Oki, merci Philippe encore une fois.

    La conclusion que j'en tire est qu'il est impossible d'avoir un script SQL qui puisse RAZ completement la base de donnees de A a Z comme en MySQL. Le seul moyen est donc de supprimer le fichier de la base de donnees et de relancer le script de creation du schema de la base.

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    oui et non
    le drop database existe, mais il faut être connecté à la base pour l'executer
    c'est un peu idiot, c'est pour cela que je ne le conseille pas.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/07/2011, 16h56
  2. Drop Table ; Create Table
    Par monoar dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 23/07/2007, 14h57
  3. Réponses: 1
    Dernier message: 14/11/2005, 16h51
  4. Create table + jointure
    Par ender999 dans le forum Débuter
    Réponses: 7
    Dernier message: 20/02/2004, 12h04
  5. Database new user & create table
    Par MFDev dans le forum InterBase
    Réponses: 3
    Dernier message: 30/09/2003, 20h47

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