Aller au contenu


Photo

Requête SQL de ouf, enfin pour moi...


  • Please log in to reply
3 replies to this topic

#1 Amarok II

Amarok II

    NeoAdmin

  • Administrateurs
  • PipPipPipPipPipPip
  • 1 473 Messages :
  • Configuration:Un petit truc en alu avec un grand rectangle lumineux qui affiche des choses qui bougent quand je chatouille un autre truc en alu, là... tout plat.
  • Sexe:Mystère
  • Localisation:Perpignan, France
  • Passions:MacFr bien sûr !

Posté 19 janvier 2009 - 13:59

Bonjour,

J'explique mon souci.

Je cherche à faire du ménage sur une grosse base.

disons que la base de données se nomme "LaBase", et contienne des tables "Articles", "Clients", "Fournisseurs", etc.

LaBase gère plusieurs sociétés représentées par un numéro.

Je cherche UNE requête SQL me permettant d'effacer toute trace d'une société (pour la recréer ensuite, mais c'est autre chose. On voudrais faire ça propre.

Le genre : "efface moi dans 'LaBase' toutes les fiches dont la societe est égale à 100".

Je sais faire sur une table, mais je ne sais pas si c'est faisable au niveau de la base...

Bien sûr, j'aurai que 3 tables, le pb serait vu autrement, mais j'en ai une bonne centaine, voire plus...

Merci d'avance .
:)

MacBook Pro (13", fin 2012)
8Go RAM - 256Go SSD - 1To HD

Technicien certifié ACMT et plein d'autres trucs...

"On peut voir de bien des façons. On peut être aveugle de bien des façons." (Frank Herbert, Dune)

"Tu ne feras point de machine à l'esprit de l'homme semblable." (Frank Herbert, Dune)


#2 AliGator

AliGator

    (Trop) Grand Bavard

  • Membres d'honneur
  • PipPipPipPipPipPipPipPipPip
  • 12 338 Messages :
  • Configuration:• MacBook Pro 15" 2,2GHz, 10.6
    • MacMini G4 1,42GHz, 10.5
  • Sexe:Masculin
  • Localisation:Rennes (Bretagne, France)
  • Passions:Piano, Cuisine, Danse (Rock, ...), faire des réponses de 3km

Posté 19 janvier 2009 - 14:35

Le problème c'est qu'il n'y a pas de recette miracle, dans le sens où tu n'es pas sensé avoir ce champ "id_societe" dans toutes tes tables de ta base... Donc là tu t'es démerdé comme ça, mais il n'y a rien de tout fait sinon pour faire une requête sur plusieurs tables voire toutes les tables qui ont un champ dont le nom est commun.

Mais je pense qu'on peut s'en sortir quand même moyennant une bidouille...
Par exemple il existe la requête "SHOW TABLES FROM LaBase" qui va te répondre la liste des tables de ta base de données. Avec ça y'a déjà peut-être un moyen de faire un truc pour composer une requête SQL.

Sinon un bout de PHP qui récupère le résultat de ce "SHOW TABLES FROM LaBase" pour avoir la liste des tables, et boucle sur chacune de tes tables pour exécuter la requête de suppression de tes sociétés sur chacune d'elle. Ca fera autant de requêtes SQL de que tables et non pas une seule, mais bon si c'est PHP qui le fait et que c'est ponctuel en plus...

Le posteur fou de macfr
Mon blog: Crunchy Development
______________
Devise Shadok : S'il n'y a pas de solution, c'est qu'il n'y a pas de problème...


#3 Amarok II

Amarok II

    NeoAdmin

  • Administrateurs
  • PipPipPipPipPipPip
  • 1 473 Messages :
  • Configuration:Un petit truc en alu avec un grand rectangle lumineux qui affiche des choses qui bougent quand je chatouille un autre truc en alu, là... tout plat.
  • Sexe:Mystère
  • Localisation:Perpignan, France
  • Passions:MacFr bien sûr !

Posté 19 janvier 2009 - 19:43

pas évident car ma requête sql attaque pour le coup une base FireBird...

donc show tables n'existe pas, mais j'ai trouvé une sorte d'équivalent.

pas encore gagné cette affaire...

merci de votre aide (again) ;)

MacBook Pro (13", fin 2012)
8Go RAM - 256Go SSD - 1To HD

Technicien certifié ACMT et plein d'autres trucs...

"On peut voir de bien des façons. On peut être aveugle de bien des façons." (Frank Herbert, Dune)

"Tu ne feras point de machine à l'esprit de l'homme semblable." (Frank Herbert, Dune)


#4 odr

odr

    Maniaque du clavier

  • Membres
  • PipPipPipPip
  • 521 Messages :
  • Configuration:Apple II
  • Sexe:Masculin

Posté 20 janvier 2009 - 10:41

Yo.

Ya pas une sorte de delete cascade dans firebird ?
Il vaut mieux prendre chaud en mangeant que froid en travaillant - Sagesse lyonnaise




0 utilisateur(s) en train de lire ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)