社区
MS-SQL Server
帖子详情
请问一主细表关系问题
SZHHP
2003-11-21 03:16:01
一主表和一细表,一对多关系,要求主表的每一条记录在细表中至少有一条记录对应。
也就是主表记录不能孤立存在、在细表中不能没有其子记录,
这种关系如何定义?
谢谢
...全文
91
10
打赏
收藏
请问一主细表关系问题
一主表和一细表,一对多关系,要求主表的每一条记录在细表中至少有一条记录对应。 也就是主表记录不能孤立存在、在细表中不能没有其子记录, 这种关系如何定义? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pengdali
2003-11-21
打赏
举报
回复
CREATE TRIGGER 名3 ON 细表
FOR delete
AS
delete 主表 where 编号 in (select 编号 from deleted where 编号 not in (select 编号 from 细表 ))
go
pengdali
2003-11-21
打赏
举报
回复
CREATE TRIGGER 名3 ON 细表
FOR delete
AS
delete 主表 where 编号 in (select 编号 from deleted)
and not exists (select 1 from 细表 where 编号 in (select 编号 from deleted))
SZHHP
2003-11-21
打赏
举报
回复
大家注意:“主表记录不能孤立存在”
用外键还是会让主表存在孤记录(细表没有相应子记录)的。
txlicenhe
2003-11-21
打赏
举报
回复
一主表和一细表,一对多关系,要求主表的每一条记录在细表中至少有一条记录对应。
也就是主表记录不能孤立存在、在细表中不能没有其子记录,
这种关系如何定义?
(
这种用外键和关联都没法实现,只能用触发器来检测
1: 在主表新增或修改主键时检测子表中是否有记录
2: 在子表中修改或删除时检测主表中的记录是否合法
)
hhmmss
2003-11-21
打赏
举报
回复
zjcxc(邹建)
pengdali(大力 V3.0)
牛人,小弟狂学!
pengdali
2003-11-21
打赏
举报
回复
企业管理器--右键表--设计表--任意字段处按右键--关系--新建--设置与其他表的关联(即那些表的字段与本表的字段有关系,要被自动更新)--设置好后,选中"对 INSERT 和 UPDATE 强制关系"--并同时选中"级联更新相关的字段",如果要级联删除,再选中"级联删除相关的记录"--最后确定就可以了
zjcxc
元老
2003-11-21
打赏
举报
回复
这样建好后.主表到子表的关系会自动维护.关联字段为id.
再写一个触发器,来维护从表与主表的关系.
create trigger t_delete on 从表
after delete
as
delete from 主键 where id not in(select id from 从表)
go
zjcxc
元老
2003-11-21
打赏
举报
回复
--类似这样建表
create table 主表(id varchar(40) not null constraint PK_主表 primary key
,aa varchar(10)
)
create table 从表(id varchar(40) not null
,indexid varchar(40) not null
,value varchar(500)
)
alter table 从表 add constraint PK_从表 PRIMARY KEY CLUSTERED (id,indexid)
--添加级联更新
ALTER TABLE dbo.从表 ADD CONSTRAINT
FK_从表_主表 FOREIGN KEY
(
id
) REFERENCES dbo.主表
(
id
) ON UPDATE CASCADE
ON DELETE CASCADE
friendliu
2003-11-21
打赏
举报
回复
FOREIGN KEY 约束
外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。
当创建或更改表时可通过定义 FOREIGN KEY 约束来创建外键。
例如,数据库 pubs 中的 titles 表与 publishers 表有链接,因为在书名和出版商之间存在逻辑联系。titles 表中的 pub_id 列与 publishers 表中的主键列相对应。titles 表中的 pub_id 列是到 publishers 表的外键。
FOREIGN KEY 约束并不仅仅只可以与另一表的 PRIMARY KEY 约束相链接,它还可以定义为引用另一表的 UNIQUE 约束。FOREIGN KEY 约束不允许空值,但是,如果任何组合 FOREIGN KEY 约束的列包含空值,则将跳过 FOREIGN KEY 约束的校验。
friendliu
2003-11-21
打赏
举报
回复
在主表和细表中定义关键字
然后建立两者之间的约束关系就可以了。
数据库主从表和主细表简介
主从表是一对多的
关系
主表中的一条记录在从表有相应的多条记录 举例: 主表客户表存储客户信息 custno name 100 xx 200 yy 从表订单表存储客户的订单信息 custno 名称 数量 100 aa
关于主外键
关系
主表子表插入 或者更新
主外键
关系
表主表子表插入或者更新
问题
对于多表的整体跟新数据,并且各个表之间有主外键关联 表UserA为主表,主键为id; 表UserB为主表,主键为Bid,外键为id; 表UserC为主表,主键为Cid,外键为id; 代码逻辑为先插入主表的一条信息,如果是新增数据,则相应子表数据,也做相应插入;如果是更新数据,则相应子表数据,也做相应更新; List<UserADto> userA...
主细表数据录入原则.
主细数据库同时录入数据的时候,我认为有如下原则:1 逻辑远比方便重要。 有的人喜欢将主表数据之前,生成细表数据。撇开数据库的主外键约束的情况不说,单单从逻辑上,也应该是先有主表数据,然后再有细表数据。 为了绑定显示方便,而将细表数据先存到数据库中,和逻辑上的混乱与造成的麻烦相比,远远得不偿失。 2 临时数据,临时存。 简单的临时数据,可以存到ViewState当中,复杂的(如发表
关于mysql的多表
关系
中的主表数据如何删除
方案一:先删除从表的数据才可以删除主表的数据 方案二:这个就要在建立多表
关系
的时候要添加一些操作了 alter table 从表 add constraint 外键名称(一般以_dfk结尾) foreign key 从表的外键的字段名 references 主表(主表的主键); 在你想删除主表的的数据时,delete from 主表 drop foreign key 外键名称; 这两个方案...
订单表 主订单表 订单详情表
主订单对应多个自订单 一对多
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章