


What are CASCADE, NO ACTION, RESTRICT, and SET NULL in Mysql foreign key settings?
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:
Set foreign keys:
(2) In the database bookshop, I created a new table b as follows:
(3) Insert records into tables a and b as follows:
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!

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

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

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

Hot Topics



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.

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.

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.

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).

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 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.

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.

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).
