blob: eb2e5af1e7c889977d53f0bf0c5c198d954ee9f4 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
= Transactions
A transaction is a sequence of SQL operations that starts with the `START TRANSACTION` statement and ends with the `COMMIT` statement. Either the effect of all operations will be published, or no results will be published at all.
NOTE: Transactions are only allowed within a link:clients/overview#sql-scripts[script].
In Ignite 3, you start the transaction by using the `START TRANSACTION` statement:
[.diagram-container]
Diagram(
Terminal('START TRANSACTION'),
ZeroOrMore(
Terminal('READ ONLY'),
Terminal('READ WRITE')))
NOTE: DDL statements are not supported inside transactions.
Parameters:
- `READ WRITE` - both read and write operations are allowed in the transaction.
- `READ ONLY` - only read operations are allowed in the transaction.
You close and commit the transaction by using the `COMMIT` statement:
[.diagram-container]
Diagram(
Terminal('COMMIT'))
== Example
The example below inserts 3 lines into the table in a single transaction, ensuring they will all be committed together:
[source,sql]
----
START TRANSACTION READ WRITE;
INSERT INTO Person (1, 'John', 'Smith');
INSERT INTO Person (2, 'Jane', 'Smith');
INSERT INTO Person (3, 'Adam', 'Mason');
COMMIT;
----