Lightweight transactions (LWTs)
INSERT and UPDATE statements using the
IF clause support lightweight transactions, also known as Compare and Set (CAS).
A common use for lightweight transactions is an insertion operation that must be unique, such as a cyclist’s identification.
Lightweight transactions should not be used casually, as the latency of operations increases fourfold due to the round-trips necessary between the CAS coordinators.
Non-equal conditions for lightweight transactions are supported;
you can use <, <=, >, >=, != and
IN operators in
WHERE clauses to query lightweight tables.
It is important to note that using
IF NOT EXISTS on an
INSERT, the timestamp will be designated by the lightweight transaction, and USING TIMESTAMP is prohibited.
Insert a new cyclist with their
INSERT INTO cycling.cyclist_name ( id, lastname, firstname ) VALUES ( 4647f6d3-7bd2-4085-8d6c-1229351b5498, 'KNETEMANN', 'Roxxane' ) IF NOT EXISTS;
Perform a CAS operation against a row that does exist by adding the predicate for the operation at the end of the query. For example, reset Roxane Knetemann’s
firstnamebecause of a spelling error.
UPDATE cycling.cyclist_name SET firstname = 'Roxane' WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498 IF firstname = 'Roxxane';