Se connecter avec
S'enregistrer | Connectez-vous

MySQL => insert intelligent

Dernière réponse : dans Programmation

Bonjour,

contexte :
j'ai un script (vb.net) qui envoi une liste d'infos de PC vers une table (MySQL) tous les matins

  1. INSERT INTO test02 (id,nomMachine,IP,reponsePing,versionDll)
  2. VALUES ('','" & tabNom(i) & "','" & tabIP(i) & "','" & tabReponse(i) & "','" & tabVersion(i) & "')


- il faudrait que si une machine n'a pas changée depuis hier, aucune occurence soit rajoutée dans la table (en sachant que l'id est en auto increment donc il faut comparer seulement le reste des infos)

- si il y a changement la ligne se rajoute normalement

le plus dur est de gérer ceci :
- le pc change (on passe de la version 1 à 2) on ajoute une ligne dans la table
- le pc change (on repasse à la version 1) on ajoute une ligne afin de sauvegarder l'historique

il faut donc comparer avant d'ajouter une ligne la version du jour J avec celle du jour J-1 mais comment peut on faire en MySQL? est ce possible? ou faut il que je le code en vb.net?

merci d'avance j'espère que vous aurez au moins compris mon interrogation !!

Configuration: Windows XP
mysql 5.0
framework 2.0

Autres pages sur : mysql insert intelligent

Lassé par la pub ? Créez un compte
Expert Programmation

Tu connais le Java, tu te mets au VB.
Apprends aussi le SQL. ;) 

Regarde du côté de EXISTS.

EDIT: Je dirais même plus du côté de
INSERT INTO table VALUES ( <valeurs> )
WHERE NOT EXISTS (SELECT .. FROM table WHERE <conditions sur <valeurs>> )

j'ai une erreur c'est sur le where not exists mais je sais pas où

  1. INSERT INTO test02 (id,nomMachine,IP,reponsePing,versionDll)
  2. VALUES ('','BIPC700','10.7.3.18','true','2.0.0.0')
  3. WHERE NOT EXISTS (SELECT * FROM test02 WHERE nomMachine='BIPC700' and IP='10.7.3.18' and reponsePing='true' and versionDll='2.0.0.0')


Expert Programmation

Je suis un champion de google, je te l'accorde.
Mais le SQL n'a plus beaucoup de secrets pour moi. :sol: 

Mes compétences sur PPC/TH.fr : UNIX/Linux, C/C++, SQL, VB/VBA Excel.
Mes grosses lacunes : HTML/CSS, Java, .NET
Alors forcément, si tu tombes en pleins sur mes domaines de prédilections...

Je suis très présent en tant que modérateur, forcément. Alors tant qu'à faire, j'en profite pour aider ou pour troller. J'aime autant l'un que l'autre :D 

tu sais si c'est possible de faire ça

  1. SELECT * FROM(
  2. SELECT * FROM test02
  3. WHERE nomMachine='bipc700'
  4. ORDER BY date desc
  5. LIMIT 1
  6. )
  7. WHERE nomMachine='bipc700' AND IP='11.0.2.18' AND reponsePing='true' AND versionDll='2.0.0'

le select entre parenthèses me permet de sélectionner le dernier enregistrement qui a était fait sur la machine voulu
et après je le compare à celui que je veux insérer

comme ça s'il trouve rien ça veut dire que le nouvel enregistrement est différent donc je vais l'insérer

mais cette syntaxe ne marche pas, séparemment elle marche mais l'imbrication foire :cry: 

HELP ME PLZ :pt1cable: 
Lassé par la pub ? Créez un compte