在MySQL数据库中创建外键(Foreign Key)可以采用以下几种方式:
Sql语法:
CREATE TABLE child_table (
??? id INT PRIMARY KEY AUTO_INCREMENT,
??? parent_id INT,
??? -- 其他字段...
??? FOREIGN KEY (parent_id) REFERENCES parent_table(id)
) ENGINE=InnoDB;
在这个例子中,child_table?中的?parent_id?字段被定义为一个外键,它引用了另一个已存在的表?parent_table?的?id?字段。
如果表已经存在,可以使用?ALTER TABLE?命令来添加外键约束:
Sql语法:
-- 假设 child_table 和 parent_table 已经存在
ALTER TABLE child_table
ADD CONSTRAINT fk_child_parent
FOREIGN KEY (parent_id) REFERENCES parent_table(id);
这里?fk_child_parent?是给这个外键约束起的一个名称,不是必须的,但建议指定以便于后续管理。
在外键定义中,还可以包含更多选项,如ON DELETE、ON UPDATE等:
Sql语法:
ALTER TABLE child_table
ADD CONSTRAINT fk_child_parent
FOREIGN KEY (parent_id) REFERENCES parent_table(id)
ON DELETE CASCADE ON UPDATE CASCADE;
在这条语句中,当?parent_table?中被引用的记录被删除或更新时,相应的操作会级联到?child_table,即删除或更新对应的孩子记录。