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 ...
“The best way to be ready for the future is to invent it.”— John Sculley