CREATE TABLE `Country` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `City` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `country_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `country_id` (`country_id`), CONSTRAINT `FK_City_Country` FOREIGN KEY (`country_id`) REFERENCES `Country` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上代码中,大家创建了两个表:Country表和City表。City表中的country_id列是一个外键,它引用了Country表的id列。
在创建City表时,大家使用了FOREIGN KEY关键词来声明该列是外键,并使用REFERENCES关键词指定引用的表和列。这样一来,City表中的每一行都必须有一个正确的country_id值,该值必须存在于Country表中的id列中。
通过引用外键,大家可以实现以下功能:
- 防止主表中的记录被错误地删除。
- 保证子表中的数据与主表中的数据一致。
- 提高查询效率。
- 给予开发者更清晰的数据结构。
引用外键是MySQL中非常重要的一个功能,在设计数据库时应该充分考虑使用。在具体实现时,需要注意以下几点:
- 两张表都应该使用InnoDB存储引擎。
- 外键指向的主表必须有一个主键。
- 应该为外键建立索引,以提高查询效率。
通过引用外键,大家可以有效管理和保护数据,提高数据的完整性和可靠性。