FOREIGN KEY ON DELETE CASCADE ON UPDATE CASCADE : Foreign Keys « Table « MySQL Tutorial






mysql>
mysql> CREATE TABLE Models
    -> (
    ->    ModelID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    ->    Name VARCHAR(40) NOT NULL,
    ->    PRIMARY KEY (ModelID)
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql>
mysql> CREATE TABLE Orders
    -> (
    ->    ID          SMALLINT UNSIGNED NOT NULL PRIMARY KEY,
    ->    ModelID     SMALLINT UNSIGNED NOT NULL,
    ->    Description VARCHAR(40),
    ->    FOREIGN KEY (ModelID) REFERENCES Models (ModelID)
    ->       ON DELETE CASCADE ON UPDATE CASCADE
    -> );
Query OK, 0 rows affected (0.05 sec)

mysql>
mysql>
mysql> desc Models;
+---------+----------------------+------+-----+---------+----------------+
| Field   | Type                 | Null | Key | Default | Extra          |
+---------+----------------------+------+-----+---------+----------------+
| ModelID | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
| Name    | varchar(40)          | NO   |     |         |                |
+---------+----------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql>
mysql> desc Orders;
+-------------+----------------------+------+-----+---------+-------+
| Field       | Type                 | Null | Key | Default | Extra |
+-------------+----------------------+------+-----+---------+-------+
| ID          | smallint(5) unsigned | NO   | PRI |         |       |
| ModelID     | smallint(5) unsigned | NO   | MUL |         |       |
| Description | varchar(40)          | YES  |     | NULL    |       |
+-------------+----------------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql>
mysql> drop table Orders;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> drop table Models;
Query OK, 0 rows affected (0.00 sec)

mysql>








4.16.Foreign Keys
4.16.1.Using Foreign Keys
4.16.2.Using AUTO_INCREMENT
4.16.3.Implement a many-to-many map
4.16.4.One table with two foreign keys
4.16.5.Alter table to drop primary key and foreign key
4.16.6.Add Index and primary key to a table in table creation command
4.16.7.FOREIGN KEY ON DELETE CASCADE ON UPDATE CASCADE