The FOREIGN KEY clause has several parts:
• It names the column in the referring table (country_code).
• It names the code column in the country_parent table as the referenced column. This column is
the “foreign” key.
• It specifies what actions to take if records are modified in the referenced table. The foreign key
definition shown specifies the CASCADE action for both UPDATE and DELETE operations. This means that changes in the parent table are cascaded down to the child table. If a code value is changed in the country_parent table, InnoDB changes any corresponding city_child records with that value in the country_code column to match. If a country_parent record is deleted, InnoDB also deletes any city_child records with the same country code. (InnoDB supports actions other than CASCADE, but they are not covered here. Instead of CASCADE a SET NULL or RESTRICT can be specified. In a foreign key relationship, the referring column and the referenced column should have the same data type, and both must be indexed. (If the referring column has no index, InnoDB creates an index on it automatically.) The ON UPDATE and ON DELETE parts are optional. If they are ommitted, InnoDB simply disallows attempts to update or delete code values in the country_parent table if there are city_child records that refer to them.
Comments
Post a Comment