为什么声明了外键主表的数据还是能删除

我们首先看一下OnDelete属性。
可能的值为:NoAction;级联SetNull和Restrict属性。
当值为NoAction或Restrict时当主表(即外键的源表)中对应的记录被删除时;当值级联时;当删除主表(即外键的源表)中对应的记录时;首先检查该记录是否有对应的外键,如果有,则删除子表(即包含该键的表中的记录的表)中的外键。
当值为SetNull时;当主表(例如外键的源表)中对应的记录被删除时。
子表为空(但外键必须允许为空)。
当值为NoAction或Restrict时当主表(即外键的源表)中对应的记录被更新时。
允许。
当值为级联时;当主表(即外键的源表)中对应的记录被更新时。
检查记录是否有对应的外键。
检查没有。
子表(即包含外键记录的表)。
当值为SetNull时;当主表(即外键的源表)中对应的记录被更新时。
子表为空(但外键必须允许为空)。

mysql外键问题

默认创建表关系时:

如果A表的id列设置为主键,B表的id列和A表的id为主外。
键关系,那么就不能直接删除A表的列。
B表中的数据与A表的该列相关的记录,才可以通过约束键删除A表中的数据。

特殊情况:

可以将主外键的删除规则和删除规则调整为:级联

这样级联删除完成主文件被删除,数据文件同时被删除。

PS:这个环境很危险。
一般情况下,为了保证数据的完整性,不要采用这样的表设计。

MySQL数据库的外键特点及其应用探讨mysql不带外键

MySQL数据库外键属性及应用探讨MySQL数据库是一种非常流行的关系数据库管理系统,它支持外键约束,是实现数据完整性和一致性的重要手段。
本文将探讨MySQL数据库中外键的属性和应用。
一、MySQL外键的特点1、数据完整性外键约束可以强制数据的一致性和完整性,保证一张表中的某些关系数据也存在于另一张表中。
例如,当您删除主表中的一条记录时,与其关联的数据也会自动删除。
2.防止数据不一致通过外键限制,可以避免将与父表不兼容的数据插入到子表中,避免数据重复,提高数据库性能。
3.提高数据安全性使用外键限制可以防止误操作和误插入重要数据,从而提高数据库的可靠性和安全性。
2.应用MySQL外键使用外键约束在MySQL数据库中的表之间创建关系可以提高数据的完整性和一致性,并简化数据管理和查询。
1、表之间的数据映射利用外键约束将两个或多个表链接在一起,形成数据关联,从而可以快速查找和分析相关数据。
例如,您可以在数据库中创建Customers、Orders和OrderItems三个表,并在Order表中创建外键约束,将OrderItems表的主键与Order表的外键关联起来,这样创建订单和订单项之间的关系,以便于管理和查询。
2、数据一致性控制,有效利用数据库中的外键约束,保证数据的一致性和有效性。
例如,如果财务部门需要将员工工资信息保存在数据库中,则可以在员工表和工资表之间创建外键条目。
当员工信息发生变化时,工资单也会相应更新,避免数据重复和不一致。
3.提高性能使用外键约束可以避免数据录入和更新操作中的错误,提高数据的可靠性和准确性,从而提高数据库性能。
三、如何在M​​ySQL数据库中使用外键约束步骤如下:1、定义语法在何时添加FOREIGNKEY关键字创建表并定义外键约束,如下所示:CREATETABLEtable_name(column_namedata_type[.constrnt_name],…FOREIGNKEY(column_name)REFERENCESparent_table_name(column_name))2.为相关表定义外键约束时,需要连接两个表并关联主表一个表的主键与另一个表的外键创建数据关联。
3、数据操作在插入、更新、删除数据时,必须注意外键必须满足一定的条件,否则会出现约束冲突。
摘要:本文介绍了MySQL数据库中外键的属性和应用。
使用外键约束可以保证数据的完整性和一致性,避免数据重复和不一致,提高数据库的性能和可靠性。
使用外键约束时要注意两个表必须是链接的,并且在对数据进行操作时必须满足一定的条件,以避免约束冲突。