0
点赞
收藏
分享

微信扫一扫

详解 ClickHouse 的安装部署

西曲风 2024-06-24 阅读 38

目录

一、问题详情

二、原因分析

三、解决方案


一、问题详情

使用Mybatis删除数据的时候,报了如下错误详情:

二、原因分析

这个错误是因为在删除数据时,被删除的数据行存在其他表的外键约束关联,即已存在子记录。在数据库设计中,外键约束(FK_TEST_FUE)要求在删除父表数据之前先删除所有相关的子表数据,否则会触发这个异常。

三、解决方案

先删除外键约束所在的表数据,再删除主表数据就解决了,可以先根据以下SQL查询:

SELECT
    a.constraint_name,
    a.table_name,
    b.constraint_name 
FROM
    user_constraints a,
    user_constraints b 
WHERE
    a.constraint_type = 'R' 
    AND b.constraint_type = 'P' 
    AND a.r_constraint_name = b.constraint_name 
    AND a.constraint_name = 'FK_TEST_FUE';

这样我们就可以查询出:外键约束的名称(a.constraint_name)、外键约束所在的表名(a.table_name)、以及相关的主键约束的名称(b.constraint_name)。

获取到a.table_name的表名,通过父表的主键去删除a.table_name表中的子数据即可。

举报

相关推荐

0 条评论