START TRANSACTION
Description
Starts a transaction. If the isolation level or read/write mode is specified, a new transaction will have those characteristics. You can also specify them using SET TRANSACTION.
Syntax
Format 1: START TRANSACTION
1 2 3 4 5 6 7 |
START TRANSACTION [ { ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [...] ]; |
Format 2: BEGIN
1 2 3 4 5 6 7 |
BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [...] ]; |
Parameters
- WORK | TRANSACTION
Specifies the optional keyword in BEGIN format without functions.
- ISOLATION LEVEL
Specifies the transaction isolation level that determines the data that a transaction can view if other concurrent transactions exist.
The isolation level of a transaction cannot be reset after the first clause (INSERT, DELETE, UPDATE, FETCH, or COPY) for modifying data is executed in the transaction.
Value range:
- READ COMMITTED: Only committed data is read. It is the default value.
- REPEATABLE READ: Only the data committed before transaction start is read. Uncommitted data or data committed in other concurrent transactions cannot be read.
- SERIALIZABLE: Currently, this isolation level is not supported in GaussDB. It is equivalent to REPEATABLE READ.
- READ WRITE | READ ONLY
Specifies the transaction access mode (read/write or read only).
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
-- Create a schema. gaussdb=# CREATE SCHEMA tpcds; -- Create the tpcds.reason table. gaussdb=# CREATE TABLE tpcds.reason (c1 int, c2 int); -- Start a transaction in default mode. gaussdb=# START TRANSACTION; gaussdb=# SELECT * FROM tpcds.reason; gaussdb=# END; -- Start a transaction in default mode. gaussdb=# BEGIN; gaussdb=# SELECT * FROM tpcds.reason; gaussdb=# END; -- Start a transaction with the isolation level being READ COMMITTED and the access mode being READ WRITE: gaussdb=# START TRANSACTION ISOLATION LEVEL READ COMMITTED READ WRITE; gaussdb=# SELECT * FROM tpcds.reason; gaussdb=# COMMIT; -- Delete the table. gaussdb=# DROP TABLE tpcds.reason; -- Delete the schema. gaussdb=# DROP SCHEMA tpcds CASCADE; |
Helpful Links
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.