MySQL数据库创建外键的三种方式

发布时间:2024年01月19日

在MySQL数据库中创建外键(Foreign Key)可以采用以下几种方式:

方式1:在创建表时定义外键:

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?字段。

方式2:使用 ALTER TABLE 语句添加外键:

如果表已经存在,可以使用?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?是给这个外键约束起的一个名称,不是必须的,但建议指定以便于后续管理。

方式3:完整语法格式:

在外键定义中,还可以包含更多选项,如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,即删除或更新对应的孩子记录。

注意事项:

  • 外键约束仅适用于支持事务处理和行级锁定的存储引擎,如InnoDB。
  • 确保被引用的主键列和外键列的数据类型一致,并且主键列上没有NULL值(除非特别指定了允许NULL作为外键值)。
  • 在创建外键时,要确保引用的主键存在并且数据满足参照完整性。
文章来源:https://blog.csdn.net/weixin_72799072/article/details/135674732
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。