Lancer une requête depuis psql (bash linux) en échappant des caractères, effacer conditionnellement du contenu
Bonjour, je souhaite remplacer les valeurs de colonne si la valeur de la colonne est égale à une certaine valeur.
en effet dans certaines tables, le nom de la valeur est égal à peu près au titre de la colonne, je voudrais remplacer ça par NULL (rien).
Directement dans psql j'ai semble t-il eu un succès avec ceci :
Code:
UPDATE "test.poi.barrest" SET contact_phone = CASE WHEN fid = 1 AND dog = 'dog' THEN null end
mais je dois lancer ces commandes dans un script, hors de psql et j'ai des problèmes a échapper des single quote (apostrophe) et des colon (deux points) avec des erreurs sur mes tentatives :
Code:
1 2
| psql -U user -d datab -c 'UPDATE "test.poi.barrest" SET breakfast = CASE WHEN fid = 1 AND breakfast = \'breakfast\' THEN null end'
psql -U user -d datab -c 'UPDATE "test.poi.barrest" SET contact_phone = CASE WHEN fid = 1 AND contact_phone = `contact\:phone` THEN null end' |
Merci de votre aide