无法截断表 ‘tbl_***‘,因为该表正由 FOREIGN KEY 约束引用。

2023-10-16 03:50

本文主要是介绍无法截断表 ‘tbl_***‘,因为该表正由 FOREIGN KEY 约束引用。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

错误背景:
有两张表,一张是主表(tbl_invoice),一张是明细表(tbl_invoice_detail),

出于某种原因现在需要清空数据库,保留数据库结构,为了使自增长字段重新从1开始,我使用了truncate语法进行操作:
在这里插入图片描述

由于主表和明细表之间存在主外键关系,我先清空了明细表,然后清空主表的时候发生了上图中的错误
补充一点:
(tbl_invoice表中的主键id和tbl_invoice_detail的字段invoice_id是主外键关系)

这时后应该怎么做呢?

查询外键(在主表中查询):

--在主表中查询主外键关系
exec  sp_helpconstraint 'tbl_invoice'

执行结果:
在这里插入图片描述

删除外键(在明细表中删除外键):

--在明细表中删除外键
alter table tbl_invoice_detail drop constraint fk_tbl_invoice_detail_invoice_id

执行结果:
在这里插入图片描述

tbl_invoice_detail是明细表的表名
invoice_id是明细表中的外键

这时候就可以truncate主表了

truncate table tbl_invoice

执行结果:
在这里插入图片描述
可以看到主表已经truncate成功了。

把删除的外键再添加回去

--在明细表中把删除的主外键添加上
alter table tbl_invoice_detail
add constraint fk_tbl_invoice_detail_invoice_id foreign key (invoice_id) references tbl_invoice(id)

在这里插入图片描述

后来又发现一种简单的方法:

无法截断表 ‘tbl_******** ‘,因为该表正由 FOREIGN KEY 约束引用点击进来看看吧

这篇关于无法截断表 ‘tbl_***‘,因为该表正由 FOREIGN KEY 约束引用。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/218844

相关文章

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

如何解决yum无法安装epel-release的问题

《如何解决yum无法安装epel-release的问题》:本文主要介绍如何解决yum无法安装epel-release的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录yum无法安装epel-release尝试了第一种方法第二种方法(我就是用这种方法解决的)总结yum