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.
- In MySQL, only databases or tables using the Innodb storage engine support transactions.
- Transactions are used to maintain the integrity of the database and ensure batches Either all or none of the sql statements are executed
- transactions are used to manage INSERT, UPDATE and DELETE statements
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:
- Subtract 100 yuan from Zhang San’s account
- Add 100 yuan to Li Si’s account
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.
- Atomicity: The transaction must be an atomic unit of work. Each operation included in the transaction must be done or none of the operations must be done.
- Consistency: When the transaction is completed, it must be All data remains consistent
- Isolation: transactions run independently. Multiple transactions are isolated from each other and do not interfere with each other. 100% isolation of transactions will sacrifice speed
- Persistence: After the transaction execution is completed, its impact on the system is permanent
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.
- Method one:
- Method two:
Example
- Log in Database, use the student database and view all data tables
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!

MySQL'sBLOBissuitableforstoringbinarydatawithinarelationaldatabase,whileNoSQLoptionslikeMongoDB,Redis,andCassandraofferflexible,scalablesolutionsforunstructureddata.BLOBissimplerbutcanslowdownperformancewithlargedata;NoSQLprovidesbetterscalabilityand

ToaddauserinMySQL,use:CREATEUSER'username'@'host'IDENTIFIEDBY'password';Here'showtodoitsecurely:1)Choosethehostcarefullytocontrolaccess.2)SetresourcelimitswithoptionslikeMAX_QUERIES_PER_HOUR.3)Usestrong,uniquepasswords.4)EnforceSSL/TLSconnectionswith

ToavoidcommonmistakeswithstringdatatypesinMySQL,understandstringtypenuances,choosetherighttype,andmanageencodingandcollationsettingseffectively.1)UseCHARforfixed-lengthstrings,VARCHARforvariable-length,andTEXT/BLOBforlargerdata.2)Setcorrectcharacters

MySQloffersechar, Varchar, text, Anddenumforstringdata.usecharforfixed-Lengthstrings, VarcharerForvariable-Length, text forlarger text, AndenumforenforcingdataAntegritywithaetofvalues.

Optimizing MySQLBLOB requests can be done through the following strategies: 1. Reduce the frequency of BLOB query, use independent requests or delay loading; 2. Select the appropriate BLOB type (such as TINYBLOB); 3. Separate the BLOB data into separate tables; 4. Compress the BLOB data at the application layer; 5. Index the BLOB metadata. These methods can effectively improve performance by combining monitoring, caching and data sharding in actual applications.

Mastering the method of adding MySQL users is crucial for database administrators and developers because it ensures the security and access control of the database. 1) Create a new user using the CREATEUSER command, 2) Assign permissions through the GRANT command, 3) Use FLUSHPRIVILEGES to ensure permissions take effect, 4) Regularly audit and clean user accounts to maintain performance and security.

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

Best practices for handling string data types and indexes in MySQL include: 1) Selecting the appropriate string type, such as CHAR for fixed length, VARCHAR for variable length, and TEXT for large text; 2) Be cautious in indexing, avoid over-indexing, and create indexes for common queries; 3) Use prefix indexes and full-text indexes to optimize long string searches; 4) Regularly monitor and optimize indexes to keep indexes small and efficient. Through these methods, we can balance read and write performance and improve database efficiency.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

WebStorm Mac version
Useful JavaScript development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
