Je suis en train d'avoir une écriture d'une requête telle quemise à jour ou insertion basée sur l'horodatage
- insérer une nouvelle ligne si la clé primaire ne correspond pas à une rangée
- si correspondre à une rangée, seulement valeur de mise à jour si l'horodatage fourni est postérieure à la valeur de la colonne LastTimestamp
la lutte ici (corrigez-moi si je me trompe) est que je ne peux pas utiliser intégré la fonctionnalité « USE tIMESTAMP » Cassandra car l'horodatage fourni par le La requête est presque certainement inférieure à l'horodatage par défaut lorsque créer une nouvelle ligne, par conséquent, il ne sera pas en mesure de créer une nouvelle ligne.
Par conséquent, je ne peux créer qu'une nouvelle colonne pour stocker l'horodatage. Ensuite, j'ai une condition OU à remplir: "if lastTimestamp == null OU lastTimestamp < timestamp", mais malheureusement Cassandra ne supporte pas la logique "OR" dans la clause IF. Une autre possibilité que je peux penser est, je vais toujours créer une nouvelle ligne en ayant "INSERT IF NOT EXIST", et remplir lastTimestamp = 0. Ensuite, appliquez l'opération "update if timestamp is greater". Mais ceci est essentiellement deux écrire plus d'un. Toute autre solution possible?
Pouvez-vous nous fournir une Exemple ? –