Home Database Mysql Tutorial What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?

What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?

May 27, 2023 pm 05:19 PM
mysql restrict cascade

When I use Navicat for mysql to design the table today, when setting the foreign key, there are four values ​​to choose from in the two columns when deleting and updating: CASCADE, NO ACTION, RESTRICT, SET NULL, I tried it all myself, and the differences are as follows:

  • CASCADE: When the parent table deletes and updates, the child table will delete and update the associated records;

  • SET NULL: When the parent table deletes or updates, the child table will set the column of the foreign key field of the associated record to null, so please note that the foreign key cannot be set to not null when designing the child table;

  • When there are records associated with the parent table in the child table, RESTRICT (restriction) will prevent the deletion of the parent table record

  • NO ACTION: Same as RESTRICT also checks the foreign key first;

Empty, RESTRICT, NO ACTION Delete: when the record from the table does not exist , the master table can be deleted. If the slave table is deleted, the master table will remain unchanged.
Update: When the slave table record does not exist, the main table menu can be updated. When the slave table is updated, the main table remains unchanged.
CASCADE Delete: Automatically delete the slave table when deleting the master table. Delete the slave table, leaving the master table unchanged.
Update: Automatically update the slave table when updating the master table. Update the slave table, leaving the master table unchanged.
SET NULL Delete: When deleting the master table, the slave table is automatically updated to NULL. When the slave table is deleted, the master table remains unchanged.
Update: Automatically update the slave table value to NULL when updating the master table. Update the slave table, leaving the master table unchanged.

Here is a small example to help understand:

(1) In the database bookshop, I created a new table a as follows:

What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?

Set foreign keys:

What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?

(2) In the database bookshop, I created a new table b as follows:

What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?

(3) Insert records into tables a and b as follows:

What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?

What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?

Here: the id2 field of table a is foreign For the key field, refer to the primary key of table b, so table b is the parent table and table a is the child table; then when setting the foreign keys of table a, set four different values ​​to draw the conclusion I mentioned above.

The above is the detailed content of What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?. 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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

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: The Ease of Data Management for Beginners MySQL: The Ease of Data Management for Beginners Apr 09, 2025 am 12:07 AM

MySQL is suitable for beginners because it is simple to install, powerful and easy to manage data. 1. Simple installation and configuration, suitable for a variety of operating systems. 2. Support basic operations such as creating databases and tables, inserting, querying, updating and deleting data. 3. Provide advanced functions such as JOIN operations and subqueries. 4. Performance can be improved through indexing, query optimization and table partitioning. 5. Support backup, recovery and security measures to ensure data security and consistency.

Can I retrieve the database password in Navicat? Can I retrieve the database password in Navicat? Apr 08, 2025 pm 09:51 PM

Navicat itself does not store the database password, and can only retrieve the encrypted password. Solution: 1. Check the password manager; 2. Check Navicat's "Remember Password" function; 3. Reset the database password; 4. Contact the database administrator.

How to create navicat premium How to create navicat premium Apr 09, 2025 am 07:09 AM

Create a database using Navicat Premium: Connect to the database server and enter the connection parameters. Right-click on the server and select Create Database. Enter the name of the new database and the specified character set and collation. Connect to the new database and create the table in the Object Browser. Right-click on the table and select Insert Data to insert the data.

How to copy tables in mysql How to copy tables in mysql Apr 08, 2025 pm 07:24 PM

Copying a table in MySQL requires creating new tables, inserting data, setting foreign keys, copying indexes, triggers, stored procedures, and functions. The specific steps include: creating a new table with the same structure. Insert data from the original table into a new table. Set the same foreign key constraint (if the original table has one). Create the same index. Create the same trigger (if the original table has one). Create the same stored procedure or function (if the original table is used).

How to view database password in Navicat for MariaDB? How to view database password in Navicat for MariaDB? Apr 08, 2025 pm 09:18 PM

Navicat for MariaDB cannot view the database password directly because the password is stored in encrypted form. To ensure the database security, there are three ways to reset your password: reset your password through Navicat and set a complex password. View the configuration file (not recommended, high risk). Use system command line tools (not recommended, you need to be proficient in command line tools).

MySQL: Simple Concepts for Easy Learning MySQL: Simple Concepts for Easy Learning Apr 10, 2025 am 09:29 AM

MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

Navicat cannot connect to MySQL/MariaDB/PostgreSQL and other databases Navicat cannot connect to MySQL/MariaDB/PostgreSQL and other databases Apr 08, 2025 pm 11:00 PM

Common reasons why Navicat cannot connect to the database and its solutions: 1. Check the server's running status; 2. Check the connection information; 3. Adjust the firewall settings; 4. Configure remote access; 5. Troubleshoot network problems; 6. Check permissions; 7. Ensure version compatibility; 8. Troubleshoot other possibilities.

How to execute sql in navicat How to execute sql in navicat Apr 08, 2025 pm 11:42 PM

Steps to perform SQL in Navicat: Connect to the database. Create a SQL Editor window. Write SQL queries or scripts. Click the Run button to execute a query or script. View the results (if the query is executed).

See all articles