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

Langage SQL Discussion :

Rechercher / Remplacer dans X tables


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Points : 39
    Points
    39
    Par défaut Rechercher / Remplacer dans X tables
    Bonjour à tous,

    Je sollicite votre savoir faire SQL pour m'aider dans une requête dont je ne sais même pas si cela est possible directement en SQL (ou si je suis obligé de passer par un script par exemple en php).

    J'ai une BDD avec plusieurs tables. Cette BDD sert pour des campagnes d'emailings et j'ai donc des tables différentes pour chaque liste de diffusion qui ont toutes la même structure de nom, à savoir : subscribers_*.

    Ainsi, j'ai donc des tables subscribers_1, subscribers_2, subscribers_3, ... , subscribers_N

    Je voudrais pouvoir rechercher dans le champ Email des ces tables un email précis et le remplacer par un autre directement en SQL s'il a été trouvé. Or, ayant des centaines de tables, vous comprendrez que je ne souhaites pas faire la requête en remplaçant à chaque fois le nom de la table.

    Je voulais donc savoir si en SQL il y avait la possibilité de parcourir des tables du même type de nom en incrémentant par exemple le numéro, vérifier si la table existe et remplacer le mail en question (ou mieux encore, est-ce que une syntaxe type UPDATE table subscriber_* SET Email = "xxx@xxx.xx" WHERE Email = "aaa@aaa.aa").

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Pour un update il faut préciser le nom exact de la table.


    Donc il faudra faire autant de requete update qu'il n'y a de table.


    Si vous pouvez encore changer la modélisation ... se serai le moment.



    Si vous ne pouvez plus, vous toujours faire un script qui va intérroger les différentes vues d'information schema disponible sur votre sgbd, puis de construire vos requetes dynamiquement en fonction des info ramenées.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Points : 39
    Points
    39
    Par défaut
    Ok, c'est bien ce que je craignais.

    Hélas la structure ne peut-être modifiée. Il ne me reste plus qu'à partir sur un script PHP/MySQL.

    J'espérais qu'il existait une possibilité de faire cela directement en SQL du type (sans être sur de la syntaxe, c'était juste pour vous montrer l'idée que je m'étais faite) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @i int = 0
    WHILE @i < 600 BEGIN
        SET @i = @i + 1
        IF EXISTS (SELECT 1 FROM subscribers_@i)
    	BEGIN
    		UPDATE subscribers_@i SET Email = "xxx@xxx.xx" WHERE "aaa@aaa.aa"
    	END
    END

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2009, 17h49
  2. [AC-2003] Rechercher/remplacer dans une table
    Par chouchou60 dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/04/2009, 09h28
  3. rechercher / remplacer dans fichier en hexa
    Par ratdegout dans le forum C++
    Réponses: 2
    Dernier message: 26/05/2006, 14h14
  4. Rechercher minuscule dans une table
    Par pmonn dans le forum Access
    Réponses: 3
    Dernier message: 25/10/2004, 14h53
  5. trouver et remplacer dans une table paradox
    Par Yepazix dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/09/2004, 02h19

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