2012-03-14 39 views
5

Có cách nào để ngăn lệnh CQL Cập nhật từ việc tạo hàng mới nếu khóa hàng 'row1' không tồn tại?Cassandra CQL - Cập nhật lệnh để không tạo hàng mới

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

Dường như là bản sao của http://stackoverflow.com/questions/8154332/cassandra-unique-constraint-on-row-key/ – Tamil

Trả lời

6

Cập nhật 2015/04/10:

Tính đến Cassandra 2.0, bạn có thể sử dụng light weight transactions để thực hiện điều này. Hãy nhận biết rằng mặc dù chúng được gọi là "trọng lượng nhẹ" các truy vấn này đòi hỏi nhiều công việc phải được thực hiện trên cụm Cassandra.

Nhờ @BSB để cập nhật.

Pre 2.0 câu trả lời:

số Không giống như trong SQL, trong CQL Updateinsert ngữ nghĩa giống nhau. Bạn sẽ phải đọc trước để xác định sự tồn tại của hàng.

+0

Cảm ơn bạn. Tôi đã tìm thấy rằng cassandra 1,1 là trong phiên bản beta bây giờ và bao gồm CQL phiên bản 3. Tôi không giả sử bạn biết nếu đó sẽ chứa bất cứ điều gì có thể giải quyết vấn đề này? – mesh

+1

CQL 3 không thay đổi ngữ nghĩa của chèn vs cập nhật. – psanford

+2

Có khái niệm về giao dịch nhẹ trong C *. Bạn có thể làm "UPDATE ... IF EXISTS" hoặc "IF X = Y" – BSB

Các vấn đề liên quan