Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2006, 10h17   #1
Membre à l'essai
 
Inscription : février 2006
Messages : 145
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 145
Points : 24
Points : 24
Par défaut Recherche du code pour effacer le contenu de toutes les tables sauf

Tout est dans le titre je pense. Je cherche à faire un DELETE de toutes mes tables sauf table1,table2.

Quelqu'un pourrait m'aider à créer ce code?

Merci d'avance.
PedroBD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 11h53   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
c'est une blague ?
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 16h11   #3
Membre à l'essai
 
Inscription : février 2006
Messages : 145
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 145
Points : 24
Points : 24
Citation:
Envoyé par makowski
c'est une blague ?
Ben non. Je me suis peut-être pas exprimé clairement.

En fait, j'utilise un logiciel dont j'ai dupliqué la base de données. Je voudrais utiliser vider les tables de cette version dupliquée (sauf celles contenant certaines données) et pouvoir réutiliser la base ailleurs.

Y a pas moyen sinon de créer à nouveau la base avec toutes les tables vides de données et recopier des tables qui m'interessent?

Merci de ton aide.
PedroBD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 19h27   #4
Membre éclairé
 
Avatar de Bejaia-In
 
Inscription : avril 2006
Messages : 366
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 366
Points : 361
Points : 361
Citation:
Envoyé par PedroBD
Tout est dans le titre je pense. Je cherche à faire un DELETE de toutes mes tables sauf table1,table2.

Quelqu'un pourrait m'aider à créer ce code?

Merci d'avance.
La réponse est dans la formulation de la question !
__________________
....................................................................
Aidez-vous... Dieu vous aideras et nous aussi..
....................................................................
Bejaia-In est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 19h38   #5
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
la seule solution est de faire DELETE FROM TABLE1, DELETE FROM TABLE2, etc
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 19h38   #6
Membre à l'essai
 
Inscription : février 2006
Messages : 145
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 145
Points : 24
Points : 24
Citation:
Envoyé par Bejaia-In
La réponse est dans la formulation de la question !
Et tu peux me donner la syntaxe STP?

Tu sais comment on copie des tables? pour que je puisse dupliquer ma base et recopier les tables qui m'interessent ensuite.
PedroBD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2006, 21h38   #7
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
vas voir là http://fbexport.sourceforge.net/
ces outils sont très bien pour cela
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2006, 08h49   #8
Membre à l'essai
 
Inscription : février 2006
Messages : 145
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 145
Points : 24
Points : 24
Citation:
Envoyé par makowski
vas voir là http://fbexport.sourceforge.net/
ces outils sont très bien pour cela
Merci pour le lien.

Je chercher encore un truc: La base que je manipule fait plus de 200 tables et je voudrais trouver un outil qui me permette de visualiser le modèle logique ou physique de données de la base. Et à partir du fichier de ma base (qui fait d'ailleurs près de 150Mo).

Est-ce que je peux m'asseoir dessus, ou est-ce que ça existe? Même un truc payant, pas grave. Bon ce serait quand même bien qu'il y ait une version d'essais.
PedroBD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2006, 09h39   #9
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Sous windows, avec easyPHP, phpMyAdmin fait ca tres bien...

Tu fais un dump de tes deux tables complete plus uniquement la structure du reste.

Au pire tu fais un dump complet de ta base tu vires tout ce qui il y dedans en rapport avec le contenu des autres tables puis tu restaure le tout dans une nouvelle bas.

__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2006, 17h45   #10
Membre à l'essai
 
Inscription : février 2006
Messages : 145
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 145
Points : 24
Points : 24
Citation:
Envoyé par SnakemaN
tu vires tout ce qui il y dedans en rapport avec le contenu des autres tables
Merci de ta réponse.

Tu peux préciser STP?
PedroBD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 17h25   #11
Membre émérite
 
Avatar de Yurck
 
Homme
Ingénieur développement logiciels
Inscription : février 2005
Messages : 682
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 3
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2005
Messages : 682
Points : 921
Points : 921
Pour revenir à ta question initiale

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
CREATE PROCEDURE DELETE_TABLE_SAUF(eList Varchar(1024))
AS
declare variable w_name char(255);
begin 
    FOR SELECT r.rdb$relation_name
            FROM rdb$relations r
/*          where (r.rdb$relation_name not in ('table1','table2') )*/
          WHERE (r.rdb$relation_name NOT IN (:eList) )
            AND (upper(r.rdb$relation_name) NOT LIKE 'RDB$%')
             INTO w_name
    do begin
        execute statement 'DELETE FROM ' || :w_name;
    end
end
Y'en a qu'on essayé,
c'est vous qui voyez !

a+
Yurck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2006, 21h48   #12
Membre confirmé
 
Avatar de touhami
 
Inscription : avril 2002
Messages : 327
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 327
Points : 209
Points : 209
bonsoir,
peut tu utilise le compsant IBScript pour executer les requetes suivante :
DELETE FROM TABLE1, DELETE FROM TABLE2
c'est tous.
touhami est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 08h39   #13
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Citation:
Envoyé par Yurck
Y'en a qu'on essayé,
Mais y zont eu des problemes !
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 09h39   #14
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
c'est sûr, la procédure fonctionne, mais uniquement q'il n'y a pas de relation de contrainte sur des clés étrangères, au quel cas, il faut respecter un certain ordre dans les commande DELETE, et ça la procédure, ne le permet pas
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 09h58   #15
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Citation:
Envoyé par SnakemaN
Sous windows, avec easyPHP, phpMyAdmin fait ca tres bien...

Tu fais un dump de tes deux tables complete plus uniquement la structure du reste.

Au pire tu fais un dump complet de ta base tu vires tout ce qui il y dedans en rapport avec le contenu des autres tables puis tu restaure le tout dans une nouvelle bas.

Ce que je voulais dire c'est qu'apres un dump tu as un fichier éditable par tout editeur de texte....(Win et Linux)
....Donc une fois le dump effectué tu peux editer le fichier, supprimer tout ce que concerne le contenu des autres tables ( tout les INSERT INTO) en gardant la structure (CREATE TABLE...)

Une fois ton fichier modifier tu restaure ta base de donnée avec et voila tu as une base donnée toute propre !

C'est certes pas le plus optimisé mais ca marche à tous les coups !
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 11h17   #16
Membre émérite
 
Avatar de Yurck
 
Homme
Ingénieur développement logiciels
Inscription : février 2005
Messages : 682
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 3
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2005
Messages : 682
Points : 921
Points : 921
Taratata "makowski" la procédure peut aussi fonctionner avec les contraintes d'intégrité. Il faut évidement l'adapter et en tenir compte en faisant une jointure sur les tables de relations et en ordonnant en conséquence les suppressions.
Il est à noter que nous parlons ici d'une base virtuelle non définie. Or chacun sait que toutes bases est élaborée par un concepteur qui a muri son projet et normé ses tables.
Il en découle donc un programme de suppression plus ou moins générique en fonction de la maturité du concepteur et de sa base.
La méthode la + simple pour ce type de demande étant bien sûr la suppression temporaire des contraintes d'intégrités via des alters tables.
On peut aussi imaginer un programme delphi récursif qui déduit l'ordre de suppresion des messages d'erreurs qu'il reçoit.
Yurck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 13h11   #17
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
on est d'accord, pas la peine de t'énerver
je parlais du code de la procédure tel que proposé
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h22.


 
 
 
 
Partenaires

Hébergement Web