社区
MS-SQL Server
帖子详情
表里创建有外键,现想删掉某些表的大部分数据,怎么做比较好?
chongworm
2003-11-17 12:23:57
一个数据库有几百个表,有很多表相互之间是通过外键关联的,现在因为有些表的数据量很大,所以想把这些表中的大部分数据清掉,只留少数几条记录作样板,但是如果采用一个表一个表清除的方法,若某个表和其他表有外键联系,则系统会弹出提示,并且不让删。请问有什么方法能达到目的?请各位高手详细指点,先谢了!
...全文
19
5
打赏
收藏
表里创建有外键,现想删掉某些表的大部分数据,怎么做比较好?
一个数据库有几百个表,有很多表相互之间是通过外键关联的,现在因为有些表的数据量很大,所以想把这些表中的大部分数据清掉,只留少数几条记录作样板,但是如果采用一个表一个表清除的方法,若某个表和其他表有外键联系,则系统会弹出提示,并且不让删。请问有什么方法能达到目的?请各位高手详细指点,先谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lynx1111
2003-11-17
打赏
举报
回复
设置级联删除
sunshareforever
2003-11-17
打赏
举报
回复
可以采用触发器完成。
lvltt
2003-11-17
打赏
举报
回复
设置级联删除,具体看联机帮助
shuiniu
2003-11-17
打赏
举报
回复
表已经建好的,可用下面的增加!
alter table 从表 add constraint 外键名 foreign key(从表字段)
references 主表(主表字段) on delete cascade
shuiniu
2003-11-17
打赏
举报
回复
--例如
create table zb --主表
(
zb_id int primary key,
)
go
create table cb --从表
(
mx_id int primary key
FOREIGN KEY REFERENCES zb(zb_id)ON DELETE CASCADE , --指定级联删除
)
go
--主表数据
insert zb values(1)
insert zb values(2)
insert zb values(3)
--从表数据
insert cb values(1)
insert cb values(2)
insert cb values(3)
select * from zb
select * from cb
zb_id
-----------
1
2
3
(所影响的行数为 3 行)
mx_id
-----------
1
2
3
(所影响的行数为 3 行)
--级联删除
delete from zb where zb_id = 1
select * from zb
select * from cb
zb_id
-----------
2
3
(所影响的行数为 2 行)
mx_id
-----------
2
3
(所影响的行数为 2 行)
关于使用navicat給两个
表
添加
外键
的时候报错1452(适合新手)
**如果你遇上这种情况你的
表
里
面应该都有
数据
,就是因为
数据
里面的属性不对应导致的。 想解决这种问题最简单粗暴的方法 就是把
表
里
面的
数据
都
删掉
然后在
创建
外键
就可以了** 如果不忍心
删掉
的话就找出两个
表
里
面不对应的属性!
创建
外键
的前提: 1:参照
表
的字段是否存在. 2:组成
外键
字段要求被索引,
外键
字段在其他
表
上是主键. 3:都为innodb
表
. 4:字段类型一样. 5:语法正确 为了建立两个My...
MySQL
外键
策略不知道怎么
做
?看这一篇文章就够了~
想想一下如果有一张班级
表
和一张学生
表
,现在需要将班级
做
出修改,那么在学生
表
里
是不是就要把每一条学生
数据
都要修改下? 这时候就要用到一些约束条件,
外键
约束,也就是可以
做
到修改班级
表
里
的班级时,学生
表
对应的班级字段能自动更新,并且删除一些班级时,学生
表
的对应班级可以置空。或者是删除一些班级时,学生
表
里
对应班级的学生
数据
直接删除 那么如何实现呢,我们来看下: 首先我们先把所需要的班级
表
和学生
表
创建
好,并添加对应的主键和
外键
以及
数据
: --
创建
班级...
为mysql
数据
表
添加
外键
(二)
RESTRICT : 只要本
表
格里面有指向主
表
的
数据
, 在主
表
里
面就无法删除相关记录。 一般来说,就选restrict最安全,当然也根据具体的业务而言了.cascade很cool,但是
数据
哗的一下就没了.CASCADE : 如果在foreign key 所指向的那个
表
里
面删除一条记录,那么在此
表
里
面的跟那个key一样的所有记录都会一同
删掉
。为book
表
添加
外键
:明确指定
外键
的名
为mysql
数据
表
添加
外键
RESTRICT : 只要本
表
格里面有指向主
表
的
数据
, 在主
表
里
面就无法删除相关记录。 一般来说,就选restrict最安全,当然也根据具体的业务而言了.cascade很cool,但是
数据
哗的一下就没了.CASCADE : 如果在foreign key 所指向的那个
表
里
面删除一条记录,那么在此
表
里
面的跟那个key一样的所有记录都会一同
删掉
。为book
表
添加
外键
:明确指定
外键
的
如何在datagrip中建
表
并标记主键和
外键
😀老师演示,先在年级
表
里
创建
主键GradeID,再在课程
表
里
添加
外键
,从课程
表
到年级
表
,😀以此类推 🙂在年级
表
里
面添加主键GradeID 在课程
表
里
添加主键SubjectNo 在学生信息
表
里
添加主键StudentNo 😬在课程
表
添加
外键
GradeID,从课程
表
到年级
表
在成绩
表
里
添加
外键
SubjectNo,从成绩
表
到课程
表
。 在成绩
表
里
添加
外键
StudentNo,从成绩
表
到学生信息
表
在学生信息
表
里
添加
外键
GradeID,从学生信息
表
到年级
表
第一步,
创建
表
第二步,标记主键 第三步
MS-SQL Server
34,496
社区成员
254,561
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章