cassandra
  • cql
  • 2012-03-14 13 views 5 likes 
    5

    Czy istnieje sposób, aby uniemożliwić komendę CQL Zaktualizować przed utworzeniem nowego wiersza, jeśli klucz wiersza "wiersz1" nie istnieje?Cassandra CQL - polecenie aktualizacji, aby nie utworzyć nowego wiersza

    UPDATE columnfamily SET data = 'test data' WHERE key = 'row1'; 
    
    +0

    Wydaje się być duplikatem http://stackoverflow.com/questions/8154332/cassandra-unique-constraint-on-row-key/ – Tamil

    Odpowiedz

    6

    Aktualizacja 10.04.2015:

    Począwszy od Cassandry 2.0 można użyć light weight transactions do osiągnięcia tego celu. Należy pamiętać, że chociaż są one nazywane "niską wagą", zapytania te wymagają znacznie więcej pracy w klastrze Cassandra.

    Dzięki @BSB do aktualizacji.

    Pre 2,0 odpowiedź:

    nr przeciwieństwie do SQL, w CQI Update i insert są semantycznie samo. Trzeba by było najpierw przeczytać, aby ustalić istnienie rzędu.

    +0

    Dzięki. Zauważyłem, że cassandra 1.1 jest teraz w wersji beta i zawiera wersję 3 CQL. Nie sądzę, że wiesz, czy to będzie zawierało wszystko, co może rozwiązać ten problem? – mesh

    +1

    CQL 3 nie zmienia semantyki wstawiania vs aktualizacji. – psanford

    +2

    Istnieje pojęcie transakcji lekkich w C *. Możesz zrobić "UPDATE ... IF IF EXISTS" lub "IF X = Y" – BSB

    Powiązane problemy