1.查看、添加外键
mysql> INSERT INTO zoo VALUES (1, 'Harry', 3);Query OK, 1 row affected (0.06 sec)
这里,MySQL核查species表以查看species代码是否存在,当发现存在,允许记录保存在zoo表中。
为了删除一个外键关系,首先使用SHOW CREATE TABLE找出InnoDB的内部标签, SHOW CREATE TABLE zoo,如表B所示:
表 B
+-------+---------------------------------------------------+ Table Create Table +-------+---------------------------------------------------+ zoo CREATE TABLE `zoo` (`id` int(4) NOT NULL default '0',`name` varchar(50) NOT NULL default '',`FK_species` tinyint(4) NOT NULL default '0',KEY `FK_species` (`FK_species`),CONSTRAINT `zoo_ibfk_1` FOREIGN KEY (`FK_species`) REFERENCES `species` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 +-------+----------------------------------------------------+
然后使用带有DROP FOREIGN KEY 语句的ALTER TABLE命令,如以下:
mysql> ALTER TABLE zoo DROP FOREIGN KEY zoo_ibfk_1;Query OK, 1 row affected (0.11 sec)Records: 1 Duplicates: 0 Warnings: 0
为了将一个外键添加到一个现成的表中,使用ADD FOREIGN KEY的 ALTER TABLE语句指定合适的域作为一个外键:
mysql> ALTER TABLE zoo ADD FOREIGN KEY (FK_species) REFERENCES species (id);