Je sais avec Azure qu'il est possible de combiner un IF x THEN UPDATE ELSE INSERT
, est-il possible de faire la même chose avec Redshift SQL?(combiner les instructions CASE et UPDATE) UPSERT dans Amazon Redshift
J'essaie actuellement ce code:
SELECT source,
CASE WHEN (SELECT 1 FROM state WHERE name =
'out_dev' AND environment = 'dev') > 0
THEN
(UPDATE state SET source='new source')
ELSE (
INSERT state (source, name, load_time, hash, environment)
VALUES ('test', 'out_dev', '2017-10-12 01:14:38', '"f324f873b05d0792a3192bc28f466835"', 'dev'))
END
FROM state
Cela renvoie l'erreur:
[Amazon](500310) Invalid operation: syntax error at or near "state"
Position: 132;
(UPDATE state SET source='new source')
Je suis nouveau à Redshift donc pardonner si je ne suis pas voir quelque chose d'évident.
ce n'est pas comment insérer et mettre à jour fonctionnent. pourquoi est-ce étiqueté azur? vous ne pouvez pas utiliser insert et update dans les sous-requêtes comme ça. lisez les docs redshift/postgres à la mise à jour et insérez. –