MySQL中如何在关联表中查询出其中一个外键不存在的数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中如何在关联表中查询出其中一个外键不存在的数据?相关的知识,希望对你有一定的参考价值。
比如我有a,b,ab三张表,a表和b表是多对多的关系,于是有一张ab表,如果我在a表中删除了一些数据,那么ab表中的数据要怎么处理?
参考技术A 你这个ab是冗余存贮了。既然a表删除了记录,那么就应该同时删除ab表中对应的记录,来保持数据的一致性。追问
恩,我知道要删除ab表中对应的记录。我是想请问下,它会自动删除,还是需要手动?
手动的话怎么写sql语句呢?
方案1:写触发器
方案2:手动删
DELETE FROM ABWHERE aid NOT IN (
SELECT id
FROM A
)本回答被提问者和网友采纳
关系数据库(H2,Java):如何限制外键不匹配同一张表中的另一个外键?
【中文标题】关系数据库(H2,Java):如何限制外键不匹配同一张表中的另一个外键?【英文标题】:Relational Database (H2, Java): How do I constrain a foreign key to NOT match another foreign key in the same table? 【发布时间】:2010-03-11 08:21:31 【问题描述】:简单的问题。只是想知道这是否可以在我不必在我的 Java 代码中手动强制执行此约束的情况下完成。这两个外键(在同一个表中)都指向另一个表,但对于每一行,它们不能指向同一个外键。
link text
【问题讨论】:
【参考方案1】:您可以使用检查约束来强制两列具有不同的值:
ALTER TABLE TableName
ADD CONSTRAINT ConstraintName
CHECK fk1 <> fk2
【讨论】:
以上是关于MySQL中如何在关联表中查询出其中一个外键不存在的数据?的主要内容,如果未能解决你的问题,请参考以下文章
Navicat for MySQL 中我设置了外键之后,外键却可以和主键不一样,两张图里面的产品型号和库房是又关联的