解决Cannot delete or update a parent row: a foreign key constraint fails报错,即删除带有外键关联的数据

Cannot delete or update a parent row: a foreign key constraint fails,出现这个报错的原因是:想要删除的数据或表与其他数据或表拥有主外键关系,Mysql规定,为了维护表结构的稳定,禁止执行该操作,即外键约束失败

解决方法:
在sql数据库里面时:

SET foreign_key_checks = 0;  // 先设置外键约束检查关闭
 
drop table table1; 
detele from table where ;
 // 删除表或数据
 
SET foreign_key_checks = 1; // 开启外键约束检查,以保持表结构完整性

在实现方法里面时

//    由id删除对象
    @Override
    public void deleteById(Integer id) {
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
        try {
            // 1.解除外键关联
            qr.update("SET foreign_key_checks = 0");
            // 2.执行删除语句
            qr.update("delete from tb_user where id = ?",id);
            // 3.重新关联外键
            qr.update("SET foreign_key_checks = 1");
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("由id删除对象失败",e);
        }
    }

你可能感兴趣的:(mysql,mysql,报错)