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 Procédural MySQL Discussion :

insert into select distinct(xx)on duplicate key


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 64
    Par défaut insert into select distinct(xx)on duplicate key
    Hi all,

    J'ai un petit soucis avec ma procédure stockée.

    Je tente d’insérer ou bien d'updater des enregistrements (v_tablename provient d'une valeur d'un curseur):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set @sql = concat( 'INSERT INTO admin_router (reporter,ip, description) ',
                               'SELECT distinct(reporter_id), router_ip, reporter_id FROM ',v_tablename, ' WHERE reporter_id !=\'\' GROUP BY router_ip;',
                               ' ON DUPLICATE KEY UPDATE last_seen = CURRENT_TIMESTAMP', reporter=reporter_id);
    Le problème vient du fait que reporter_id n'est pas reconnu. Si j’enlève le distinct et le group by, cela marche, le problème est que la table v_tablename contient beaucoup d'enregistrements, ce n'est pas judicieux d'updater pour tous les enregistrements. Une idée pour me débloquer ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 64
    Par défaut
    (merci ced pour les balises, et désolé de ne pas les avoir utilisées)

    j'ai trouvé une solution qui à l'air de marcher. Je crée une vue temporaire qui exécute ma requête avec le distinct, puis ensuite je fais un insert select *. Pour finir je drop ma vue

    Ce n'est certainement pas la meilleure solution, mais ça marche quand même.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/08/2008, 12h10
  2. [Oracle 9] Anomalie insert into select
    Par maxidoove dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/05/2006, 14h11
  3. probleme dans un INSERT INTO...........SELECT
    Par briiice dans le forum Requêtes
    Réponses: 5
    Dernier message: 26/01/2006, 15h13
  4. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

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