Table of Contents
InnoDB Foreign Keys
Features
- Forces database consistency
- No need to rely on application for referential integrity
Usage
- Primary use is for parent-child table relationships
- Parent-child relationships can exist within the same table
- Column types for both indexes must be exactly the same
- Character set must also be the same for non-binary columns
- InnoDB rejects any creation of records where the constraints do not match
- You can use ALTER TABLE to retroactively apply a foreign key match, but the indexes must be valid
- Use
SHOW CREATE TABLE
to display foreign key indexes
Notes
- MyISAM tables will accept the syntax, but not actually do anything
Examples
Parent-child relationship in two tables:
CREATE TABLE parent (id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE child (id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB;