gpt4 book ai didi

java - 由于 Cassandra 没有事务并且所有语句都是原子的,因此如果需要,如何模拟回滚?

转载 作者:行者123 更新时间:2023-12-02 02:41:12 25 4
gpt4 key购买 nike

如果我有两个不同的表(可能代表两个不同的查询)并且我需要使它们保持同步,如果我更新第一个表中的值,然后在更新第二个表时发生错误,我将如何回滚第一个表的更新?

示例:

 CREATE TABLE IF NOT EXISTS sample.hotels (
id UUID,
name varchar,
address varchar,
state varchar,
zip varchar,
primary key((id), name)
);

CREATE TABLE IF NOT EXISTS sample.hotels_by_letter (
first_letter varchar,
hotel_name varchar,
hotel_id UUID,
address varchar,
state varchar,
zip varchar,
primary key((first_letter), hotel_name, hotel_id)
);

最佳答案

Cassandra 确实支持此类用途的批处理语句:http://docs.datastax.com/en/cql/3.1/cql/cql_reference/batch_r.html

这将保证批处理中的所有语句要么全部成功,要么全部失败。除此之外,无法回滚事务。

关于java - 由于 Cassandra 没有事务并且所有语句都是原子的,因此如果需要,如何模拟回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405170/

25 4 0