Home Database Mysql Tutorial MySQL transaction processing example explanation

MySQL transaction processing example explanation

May 19, 2017 pm 03:20 PM

mysql transaction processing

Not all engines support transaction processing As mentioned in Chapter 21, MySQL supports several basic database engines. As discussed in this chapter, not all engines support explicit transaction management. MyISAM and InnoDB are the two most commonly used engines. The former does not support explicit transaction management, while the latter does. This is why the sample tables used in this book were created to use InnoDB rather than the more commonly used MyISAM. If your application requires transaction processing capabilities, be sure to use the correct engine type.

Transaction processing can be used to maintain the integrity of the database. It ensures that batches of MySQL operations are either completely executed or not executed at all.

Relational database design stores data in multiple tables, making the data easier to manipulate, maintain, and reuse. Without getting into the how and why of relational database design, well-designed database schemas are all relational to some extent.

The orders table used before is a good example. Orders are stored in two tables, orders and orderitems: orders stores the actual order, while orderitems stores the items ordered. The two tables are related to each other using a unique ID called the primary key. These two tables are in turn related to other tables containing customer and product information.

The process of adding an order to the system is as follows:

(1) Check whether the corresponding customer exists in the database (query from the customers table), if not, add him /she.

(2) Retrieve the customer's ID.

(3) Add a row to the orders table and associate it with the customer ID.

(4) Retrieve the new order ID assigned in the orders table.

(5) Add a row to the orderitems table for each item ordered, and associate it with the orders table by retrieving the

ID (and associate it with the products table by the product ID).

Now, suppose that some kind of database failure (such as disk space exceeded, security restrictions, table locks, etc.) prevents the completion of this process. What happens to the data in the database?

If the failure occurs after the customer is added and before the orders table is added, there will be no problem. It is perfectly legal for some customers to not have orders. When the process is re-executed, the inserted customer record will be retrieved and used. You can effectively start the process from where it went wrong.

But what if the failure occurs after the orders row is added but before the orderitems row is added? Now, there is an empty order in the database.

Even worse, if the system fails in the middle of adding the orderitems line. The result is that there are incomplete orders in the database and you don't know about it.

How to solve this problem? Here you need to use transaction processing. Transaction processing is a mechanism used to manage MySQL operations that must be performed in batches to ensure that the database does not contain incomplete operation results. With transaction processing, you can guarantee that a set of operations will not be stopped midway, and that they will either be executed as a whole or not at all (unless explicitly instructed to do so). If no errors occur, the entire set of statements is committed (written) to the database table. If an error occurs, roll back (undo) to restore the database to a known and safe state. So, look at the same example, this time we illustrate how the process works.

(1) Check whether the corresponding customer exists in the database, if not, add him/her.

(2) Submit customer information.

(3) Retrieve the customer's ID.

(4) Add a row to the orders table.

(5) If a failure occurs while adding rows to the orders table, fall back.

(6) Retrieve the new order ID assigned in the orders table.

(7) For each item ordered, add a new row to the orderitems table.

(8) If a failure occurs when adding new rows to orderitems, roll back all added orderitems rows and orders rows.

(9) Submit order information.

When using transactions and transaction processing, there are several key words that appear repeatedly.

The following are a few terms you need to know about transaction processing:

1. Transaction refers to a set of SQL statements;

2. Rollback refers to The process of undoing the specified SQL statement;

3. Submit (commit) refers to writing the unstored SQL statement results into the database table;

4. Savepoint (savepoint) refers to the setting during transaction processing A temporary place-holder to which you can issue a rollback (as opposed to rolling back the entire transaction).

【Related recommendations】

1.

mysql free video tutorial

2.

MySQL UPDATE trigger (update) and trigger depth Analysis

3.

Detailed explanation of the usage of delete trigger (delete) in MySQL

4.

Detailed explanation of insert trigger (insert) in MySQL

5.

Introduction to mysql triggers and how to create and delete triggers

The above is the detailed content of MySQL transaction processing example explanation. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MySQL: An Introduction to the World's Most Popular Database MySQL: An Introduction to the World's Most Popular Database Apr 12, 2025 am 12:18 AM

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

How to open phpmyadmin How to open phpmyadmin Apr 10, 2025 pm 10:51 PM

You can open phpMyAdmin through the following steps: 1. Log in to the website control panel; 2. Find and click the phpMyAdmin icon; 3. Enter MySQL credentials; 4. Click "Login".

Why Use MySQL? Benefits and Advantages Why Use MySQL? Benefits and Advantages Apr 12, 2025 am 12:17 AM

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

MySQL's Place: Databases and Programming MySQL's Place: Databases and Programming Apr 13, 2025 am 12:18 AM

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

How to connect to the database of apache How to connect to the database of apache Apr 13, 2025 pm 01:03 PM

Apache connects to a database requires the following steps: Install the database driver. Configure the web.xml file to create a connection pool. Create a JDBC data source and specify the connection settings. Use the JDBC API to access the database from Java code, including getting connections, creating statements, binding parameters, executing queries or updates, and processing results.

How to start mysql by docker How to start mysql by docker Apr 15, 2025 pm 12:09 PM

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

MySQL's Role: Databases in Web Applications MySQL's Role: Databases in Web Applications Apr 17, 2025 am 12:23 AM

The main role of MySQL in web applications is to store and manage data. 1.MySQL efficiently processes user information, product catalogs, transaction records and other data. 2. Through SQL query, developers can extract information from the database to generate dynamic content. 3.MySQL works based on the client-server model to ensure acceptable query speed.

How to install mysql in centos7 How to install mysql in centos7 Apr 14, 2025 pm 08:30 PM

The key to installing MySQL elegantly is to add the official MySQL repository. The specific steps are as follows: Download the MySQL official GPG key to prevent phishing attacks. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting

See all articles