What is transaction control
A transaction refers to a series of operations performed as a logical unit of work. These operations either all succeed, or all fail. Transactions ensure that multiple data modifications are processed as a unit.
If Zhang San transfers 100 yuan to Li Si at the ATM machine, in the bank's business system, two-step data change operations will be performed:
Ask, if the operation What happens if operation 1 is executed successfully but operation 2 fails?
Related free learning recommendations: mysql video tutorial
Four characteristics of transactions
If a database supports transactions, the database must have the four characteristics of ACID, namely Atomicity (atomicity), Consistency (consistency), Isolation (isolation), Durability.
MySQL transaction control
Under default , MySQL automatically submits transactions, that is, each SQL statement of INSERT, UPDATE, and DELETE will perform a COMMIT operation immediately after submission. Therefore, to start a transaction, you can use start transaction or begin, or set the value of autocommit to 0.
Example
USE student;SHOW TABLES;
2. Create the bank_account data table and insert two records, set Zhang San’s balance field value to 1000
CREATE TABLE bank_account( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) COMMENT '姓名', balance DECIMAL(18, 2) COMMENT '账户余额');INSERT INTO bank_account(id, name, balance) VALUE(1, '张三', 0);INSERT INTO bank_account(id, name, balance) VALUE(2, '李四', 0);UPDATE bank_account SET balance = balance + 1000 WHERE id = 1;
3. View the default autocommit value
SELECT @@autocommit;
4. View all records in the bank_account data table
SELECT * FROM bank_account;
5. Start transaction control and execute two SQL statements
START TRANSACTION;UPDATE bank_account SET balance = balance - 100 WHERE id = 1;UPDATE bank_account SET balance = balance + 100 WHERE id = 2;COMMIT;
6. View the contents of the data table at this time
SELECT * FROM bank_account;
7. Again Start transaction control, insert the same two SQL statements, but change commit to rollback
START TRANSACTION;UPDATE bank_account SET balance = balance - 100 WHERE id = 1;UPDATE bank_account SET balance = balance + 100 WHERE id = 2;ROLLBACK;
8. Check the data table content again and find the rollback There is no change in the data after that
SELECT * FROM bank_account;
Note: This article is a summary of the blogger's MySQL learning and does not support any commercial use. Please indicate the source when reprinting! If you also have a certain interest and understanding in MySQL learning, you are welcome to communicate with bloggers at any time~
More related free learning recommendations:mysql tutorial (video)
The above is the detailed content of MySQL learning transaction control. For more information, please follow other related articles on the PHP Chinese website!