Как обнулить столбец счетчика в БД Scylla?

Можно ли сбросить столбец счетчика в Scylla DB?

В Cassandraэто невозможно для прямого сброса столбца счетчика на ноль:

There is no operation that will allow resetting the counter value. You need to read the value and decrement it using that value.

Be aware that this operation might not be successful since the counter can be changed between your "reset" operations.

Это верно и для Scylla DB?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
2
0
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Аналогичное поведение наблюдается и в Сцилле. Мы не можем сбросить значение счетчика на 0, счетчики можно только увеличивать или уменьшать.

scylla@cqlsh:ks> CREATE TABLE cf (pk int PRIMARY KEY, my_counter counter);
scylla@cqlsh:ks> UPDATE cf SET my_counter = my_counter + 3 WHERE pk = 0;
scylla@cqlsh:ks> SELECT * FROM cf;

 pk | my_counter
----+------------
  0 |          3

(1 rows)
scylla@cqlsh:ks> UPDATE cf SET my_counter = 0  WHERE pk = 0;
InvalidRequest: Error from server: code=2200 [Invalid query] message = "Cannot set the value of counter column my_counter (counters can only be incremented/decremented, not set)"
scylla@cqlsh:ks> UPDATE cf SET my_counter = my_counter - 3 WHERE pk = 0;
scylla@cqlsh:ks> SELECT * FROM cf;

 pk | my_counter
----+------------
  0 |          0

(1 rows)

Обратите внимание на ошибку при попытке установить значение напрямую.

Подробнее об этом:

https://docs.scylladb.com/using-scylla/counters/#scylla-counters

https://docs.scylladb.com/getting-started/types/#counters

https://www.scylladb.com/2017/04/04/counters/

Другие вопросы по теме