Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 理解数据库中的引用完整性_Mysql_Sql_Database - Fatal编程技术网

Mysql 理解数据库中的引用完整性

Mysql 理解数据库中的引用完整性,mysql,sql,database,Mysql,Sql,Database,我刚开始学习数据库。我的教授提到了“引用完整性”这个术语,我正在努力理解它 这是我的理解。如果我有 表管理器:管理器id、管理器名称 表Employee:Employee\u id、Manager\u id、Employee\u name 经理id是“经理表”的主键和“员工表”的外键 如果我从Manager中删除/更新任何Manager\u id,则具有该Manager id的所有条目都将被删除/更新。这是级联更新或删除 但如果我尝试删除或更新“员工表”中的经理id会怎么样?它会相应地从Mana

我刚开始学习数据库。我的教授提到了“引用完整性”这个术语,我正在努力理解它

这是我的理解。如果我有

表管理器:管理器id、管理器名称 表Employee:Employee\u id、Manager\u id、Employee\u name

经理id是“经理表”的主键和“员工表”的外键

如果我从Manager中删除/更新任何Manager\u id,则具有该Manager id的所有条目都将被删除/更新。这是级联更新或删除

但如果我尝试删除或更新“员工表”中的经理id会怎么样?它会相应地从Manager表中删除条目吗

如果我从Manager中删除/更新任何Manager\u id,则所有条目 拥有该经理id将被删除/更新。那是级联的 更新或删除

只有在为外键定义了更新/删除规则时,才会发生这种情况。默认情况下,级联更新/删除被禁用,因为它可能会导致数据发生意外更改

但是,如果我尝试删除或更新“员工”中的经理id会怎么样 桌子“?它会相应地从Manager中删除条目吗 桌子

它将只删除单个员工,因为相关经理也可以被其他员工引用

如果我从Manager中删除/更新任何Manager\u id,则所有条目 拥有该经理id将被删除/更新。那是级联的 更新或删除

只有在为外键定义了更新/删除规则时,才会发生这种情况。默认情况下,级联更新/删除被禁用,因为它可能会导致数据发生意外更改

但是,如果我尝试删除或更新“员工”中的经理id会怎么样 桌子“?它会相应地从Manager中删除条目吗 桌子

它将只删除单个员工,因为相关经理也可以被其他员工引用

如果我从Manager中删除/更新任何Manager\u id,则所有条目 拥有该经理id将被删除/更新。那是级联的 更新或删除

只有在为外键定义了更新/删除规则时,才会发生这种情况。默认情况下,级联更新/删除被禁用,因为它可能会导致数据发生意外更改

但是,如果我尝试删除或更新“员工”中的经理id会怎么样 桌子“?它会相应地从Manager中删除条目吗 桌子

它将只删除单个员工,因为相关经理也可以被其他员工引用

如果我从Manager中删除/更新任何Manager\u id,则所有条目 拥有该经理id将被删除/更新。那是级联的 更新或删除

只有在为外键定义了更新/删除规则时,才会发生这种情况。默认情况下,级联更新/删除被禁用,因为它可能会导致数据发生意外更改

但是,如果我尝试删除或更新“员工”中的经理id会怎么样 桌子“?它会相应地从Manager中删除条目吗 桌子


它将只删除单个员工,因为相关经理也可以被其他员工引用。

级联部分从主键指向外键,但不是相反

比如说,当您删除Manager1时,员工1将Manager1作为经理是没有意义的,因为它们不再定义


但是,当您将Employee1的管理器从Manager1更改为Manager2时,如果两个管理器仍然存在,那么这仍然可以。

级联部分从主键转到外键,而不是相反

比如说,当您删除Manager1时,员工1将Manager1作为经理是没有意义的,因为它们不再定义


但是,当您将Employee1的管理器从Manager1更改为Manager2时,如果两个管理器仍然存在,那么这仍然可以。

级联部分从主键转到外键,而不是相反

比如说,当您删除Manager1时,员工1将Manager1作为经理是没有意义的,因为它们不再定义


但是,当您将Employee1的管理器从Manager1更改为Manager2时,如果两个管理器仍然存在,那么这仍然可以。

级联部分从主键转到外键,而不是相反

比如说,当您删除Manager1时,员工1将Manager1作为经理是没有意义的,因为它们不再定义


但是,当您将员工1的经理从Manager1更改为Manager2时,假设两个经理仍然存在,则这仍然是好的。

因此基本上对于级联删除来说,例如:查询将是。。从manager中删除*,其中manager\u id=“123”。我说的对吗?是的-然后通常可以选择下一步做什么-级联或不级联,如果级联-将FK值设置为:NULL或一些默认值。因此基本上对于级联删除,例如:查询将是。。从manager中删除*,其中manager\u id=“123”。我说的对吗?是的-然后通常可以选择下一步做什么-级联或不级联,如果级联-将FK值设置为:NULL或一些默认值。因此基本上对于级联删除,例如:查询将是。。从manager中删除*,其中manager\u id=“123”。我说的对吗?是的-然后通常可以选择下一步做什么-级联或不级联,如果级联-将FK值设置为:NULL或一些默认值。因此基本上对于级联删除,例如:查询将是。。从manager中删除*,其中manager\u id=“123”。我说的对吗?是的-然后通常可以选择下一步做什么-级联或不级联,如果级联-将FK值设置为:NULL或一些默认值。因此基本上对于级联删除,例如:查询将是。。从manager中删除*,其中manager\u id=“123”。我说得对吗?是的,没错。这说明了为什么级联在默认情况下是关闭的,因为您可以在不知道的情况下轻松删除有价值的数据