INSERT UPDATE conditionnels.
pcsystemd
Messages postés
702
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais via u script python pouvoir via une requête SELECT faire soit un INSERT pour chaque résultat de mon SELECT soit un UPDATE si l'entrée existe en BDD.
Je ne sais pas si avec un IF FOUND then INSERT.. ELSE UPDATE.. cela pourrait fonctionner!
Connaissez vous d'autres solutions?
Merci
Je souhaiterais via u script python pouvoir via une requête SELECT faire soit un INSERT pour chaque résultat de mon SELECT soit un UPDATE si l'entrée existe en BDD.
Je ne sais pas si avec un IF FOUND then INSERT.. ELSE UPDATE.. cela pourrait fonctionner!
Connaissez vous d'autres solutions?
Merci
A voir également:
- INSERT UPDATE conditionnels.
- Touche insert - Guide
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Disk boot failure insert system disk and press enter - Guide
2 réponses
Bonjour,
On peut tenter un UPDATE, vérifier le nombre de lignes affectées, et si c'est 0 faire l'INSERT.
En une seule requête, on peut faire INSERT ... ON CONFLICT UPDATE (https://www.postgresql.org/docs/current/sql-insert.html#SQL-ON-CONFLICT) L'idée est la même, mais à l'envers : SQL tente un INSERT, si ça marche pas il fait l'UPDATE. Ce qui signifie que tu dois avoir une clef primaire pour détecter le conflit.
Xavier
Edit : j'ai enlevé l'option MERGE, j'avais mal lu elle n'est pas supportée
On peut tenter un UPDATE, vérifier le nombre de lignes affectées, et si c'est 0 faire l'INSERT.
En une seule requête, on peut faire INSERT ... ON CONFLICT UPDATE (https://www.postgresql.org/docs/current/sql-insert.html#SQL-ON-CONFLICT) L'idée est la même, mais à l'envers : SQL tente un INSERT, si ça marche pas il fait l'UPDATE. Ce qui signifie que tu dois avoir une clef primaire pour détecter le conflit.
Xavier
Edit : j'ai enlevé l'option MERGE, j'avais mal lu elle n'est pas supportée