gpt4 book ai didi

mysql - 如何正确使用外键

转载 作者:行者123 更新时间:2023-11-29 04:03:31 26 4
gpt4 key购买 nike

我正在开发一个类似帮助台的系统,我想使用外键,以确保数据库结构正常,但我不知道是否应该使用它们,以及如何正确使用它们.

是否有任何关于如何(以及何时)使用外键的好教程?

编辑 我最困惑的部分是 ON DELETE .. ON UPDATE .. 部分,假设我有以下表格

table 'users'
id int PK auto_increment
department_id int FK (departments.department_id) NULL
name varchar

table 'departments'
id int PK auto_increment
name

users.department_id 是 departments.department_id 的外键,当我想删除部门或用户时,ON UPDATE 和 ON DELETE 函数如何工作?

最佳答案

ON DELETEON UPDATE 指的是您在键表中所做的更改如何传播到从属表。 UPDATE 意味着更改依赖表中的键值以维护关系,DELETE 意味着删除依赖记录以维护完整性。

例子:假设你有

 Users: Name =  Bob, Department = 1
Users: Name = Jim, Department = 1
Users: Name = Roy, Department = 2

 Departments: id = 1, Name = Sales
Departments: id = 2, Name = Bales

现在,如果您更改 departments 表以将第一条记录修改为 id = 5, Name = Sales,那么使用“UPDATE”您也可以将前两条记录更改为 Department = 5 -- 如果没有“UPDATE”,您将无法进行更改!

同样,如果您删除了部门 2,那么使用“DELETE”您也会删除 Roy 的记录!如果没有“DELETE”,您将无法在不先移除 Roy 的情况下移除该部门。

关于mysql - 如何正确使用外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com