mysql关闭外键是针对所有对象么

mysql关闭外键是针对所有对象么,第1张

不是 MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。

外键的使用条件:

  1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);

 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;

 3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;

外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联 *** 作;

在MySQL中删除一张表或一条数据的时候,出现

[Err] 1451 -Cannot deleteorupdatea parent row:

aforeignkeyconstraintfails (...)

这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

禁用外键约束,我们可以使用:

SETFOREIGN_KEY_CHECKS=0

然后再删除数据

启动外键约束,我们可以使用:

SETFOREIGN_KEY_CHECKS=1

查看当前FOREIGN_KEY_CHECKS的值,可用如下命令:

SELECT @@FOREIGN_KEY_CHECKS


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7483670.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存