我有一个组件数据库。每个组件都是特定的类型。这意味着组件和类型之间存在多对一的关系。删除类型时,我想删除所有具有该类型外键的组件。但是,如果我没记错的话,级联删除将在删除组件时删除类型。有什么办法可以做我所描述的吗?
这就是您要包含在组件表中的内容。
CREATE TABLE `components` (
`id` int(10) unsigned NOT NULL auto_increment,
`typeId` int(10) unsigned NOT NULL,
`moreInfo` VARCHAR(32),
-- etc
PRIMARY KEY (`id`),
KEY `type` (`typeId`)
CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`)
REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
)
请记住,您需要使用InnoDB存储引擎:默认的MyISAM存储引擎不支持外键。
问题内容: 我想知道这个测试问题。我自己准备了示例并进行了测试,但是我仍然不确定答案。 具有以下内容: 据我所知,答案是: 一个。 创建两个表 虽然也有: b。 如果删除表foo2中foo_id为2的行,则表foo中id = 2的行将被自动删除 d。如果删除表foo中id = 2的行,则删除表foo2中所有foo_id = 2的行 在我的示例中,我将使用delete语法: 由于某种原因,我似乎找不
问题内容: 我想使用外键来保持完整性并避免使用孤立键(我已经使用过innoDB)。 如何创建在CASCADE上删除的SQL语句? 如果我删除一个类别,那么如何确保它不会删除也与其他类别相关的产品。 数据透视表“ categories_products”在其他两个表之间创建多对多关系。 问题答案: 如果您的级联删除某个产品是因为该产品属于被杀类别的成员,那么它会删除该产品,那么您的外键设置不正确。给
我正在从事一个java web项目,该项目使用: > Spring Hibernate/JPA MySQL-(在EasyPHP/PHPMyAdmin上)JDBC 当我想删除一些数据时,我遇到了一个错误。但是,只有当我想删除一个有子级的父行并且他的一个子行也至少有一个子行时,这个问题才存在。 目标:我希望操作/查询删除所选行及其子行和子行。 错误代码:在服务器输出中 28-Sep-2016 11:5
代码: 三个问题: > 我必须放置<code>CascadeType吗。在两个实体中删除?我希望它能正常工作,这样如果我删除了老师,课程就会自动删除。 在我的数据库中,我的id无法正常工作。我希望它使id每次增加一个,但它目前增加了一些随机数。为什么呢? 我还有两个类,但有关系。当我想在数据库中持久化一个新对象时,我必须做什么?
问题内容: 如果我的数据库中有一个简单的User表,而有一个以User.id作为外键的简单Item表,则: 如果将用户从表中删除,我需要先删除所有相关项,以免破坏参照完整性约束。这很容易做到 但是,如果我也有引用用户的集合,还有一个将项目收集到集合中的表,那么我很麻烦,即以下附加代码不起作用。 该错误表明“可能导致循环或多个级联路径”。我认为推荐的解决方法是 重新设计表格,但是我看不到如何做。或者
问题内容: 我必须缺少SQLAlchemy的层叠选项的琐碎内容,因为我无法获得简单的层叠删除来正确操作-如果删除了父元素,则子对象将使用外键保留。 我在这里放了一个简洁的测试用例: 输出: 父母与子女之间存在简单的一对多关系。该脚本创建一个父级,添加3个子级,然后提交。接下来,它删除父级,但子级仍然存在。为什么?如何使孩子级联删除? 问题答案: 问题是sqlalchemy认为是父级的,因为这是您定