Rumah > pangkalan data > tutorial mysql > 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法

清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-07 15:16:40
asal
1267 orang telah melayarinya

如下解决了五个问题 1. 清空数据 2. 有外键也可以, 因为是逆向删除, 从最后一张表删除. 且使用的是delete, 因为truncate不能对有外键的表 3. 种子问题, 如果表存在种子重设为0, 如不存在就不操作 4. 加了事务, 中间报错, 有后悔机会 5. 截断日志功能, 因为使

如下解决了五个问题
1. 清空数据
2. 有外键也可以, 因为是逆向删除, 从最后一张表删除. 且使用的是delete, 因为truncate不能对有外键的表
3. 种子问题, 如果表存在种子重设为0, 如不存在就不操作
4. 加了事务, 中间报错, 有后悔机会
5. 截断日志功能, 因为使用delete, 删除后日志文件会增大, 可以不使用

http://topic.csdn.net/u/20090816/17/EE0FA21E-8616-4236-A9CB-8C5A3D45C9D9.html 中45楼

 

对于有外键约束的表,网上普遍说的方法:

 

EXEC sp_MSForEachTable ' ALTER TABLE ? NOCHECK CONSTRAINT ALL ' -- NOCHECK Const

EXEC  sp_MSForEachTable ' truncate TABLE ? '

<span>EXEC</span>
<span>   sp_MSForEachTable </span>
<span>'</span>
<span>ALTER TABLE ? CHECK CONSTRAINT ALL</span>
<span>'</span>
<span>--</span>
<span>NOCHECK Constraints</span>
<br>
<span><br>
<span>是行不通的,因为</span>
</span>
<span>trun</span>
cate不能对有外键的表 ,改为delete from tablename就行,但delete会激活触发器,这也是一个问题。<br>
<br>
Salin selepas log masuk
Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Ringkasan HTML
daripada 1970-01-01 08:00:00
0
0
0
Ringkasan HTML
daripada 1970-01-01 08:00:00
0
0
0
Mengapakah nombor lapisan bawah piramid berongga salah?
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan