级联删除方式

这个昵称被占用了吗 2018-12-24 08:47:21
级联删除方式有外键,代码事务,触发器,存储过程,实际开发中一般哪种方式更合适?为什么?
...全文
352 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-12-27
  • 打赏
  • 举报
回复
引用 5 楼 *ucc 的回复:
[quote=引用 4 楼 吉普赛的歌 的回复:] 代码实现, 或者写存储过程。 存储过程的好处就是调用比较方便。
存储过程用多会不会降低性能?[/quote] 丝毫不会慢, 甚至更快。 程序中用语句, 还是用存储赛程 完成功能, 这由个人习惯、团队规范而定。 不需要想太多, 可以两种都试下。 如果公司有规定, 按公司规定也行。
  • 打赏
  • 举报
回复
引用 4 楼 吉普赛的歌 的回复:
代码实现, 或者写存储过程。
存储过程的好处就是调用比较方便。
存储过程用多会不会降低性能?
吉普赛的歌 2018-12-25
  • 打赏
  • 举报
回复
代码实现, 或者写存储过程。 存储过程的好处就是调用比较方便。
  • 打赏
  • 举报
回复
引用 1 楼 柴米油盐酱醋0 的回复:
曾经在书看到过,不建议使用MYSQL的外键,如果要使用外键的功能,最好在代码层实现。
触发器会消耗系统性能,也不建议使用。
还在是代码层实现吧
代码层实现的话,代码也比较多。但是看了不少博客也是推荐事务删除
  • 打赏
  • 举报
回复
代码层实现的话,代码也比较多。但是看了不少博客也是推荐事务删除
  • 打赏
  • 举报
回复
曾经在书看到过,不建议使用MYSQL的外键,如果要使用外键的功能,最好在代码层实现。 触发器会消耗系统性能,也不建议使用。 还在是代码层实现吧
以前用Sql Server只会对图形界面进行操作,现在发现自己的Sql语言功底是越来越差了,例如如何为两个表添加关联,让他们级联更新和级联 删除。 到晚上查了一下,发现可以用两种办法 触发器方式: create trigger trg_A on A for update,delete as begin if exists(select 1 from inserted) update B set Name=(select Name from inserted) where Name=(select Name from deleted) else delete B where Name=(select Name from deleted) end go 级联更新和级联删除方式: ALTER TABLE [dbo].[T_USERGROUP] ADD CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY ( [ATNAME] ) REFERENCES [dbo].[T_ACCTTEMPLATE] ( [ATNAME] ) ON UPDATE CASCADE ON DELETE CASCADE ---------------------------------------------------------------------------------------------------------------------------- 如果,现在有两张表A(id,xx.xx...),C(id,Cid,xx,xx...),预实现C中的id与A 中id级联删除、级联更新/数据同步,可有两种实现方式: 一. 利用sql server自带的级联删除、级联更新功能,即其外键约束途径 alter table dbo.C add constraint FK_C_A_AID foreign key(AID) references dbo.A(AID) on delete cascade on update cascade go alter table dbo.C add constraint FK_C_B_BID foreign key(BID) references dbo.B(BID) on delete cascade on update cascade go 级联更新和级联删除方式: Alter TABLE [dbo].[T_USERGROUP] ADD CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY ( [ATNAME] ) REFERENCES [dbo].[T_ACCTTEMPLATE] ( [ATNAME] ) ON Update CASCADE ON Delete CASCADE

56,876

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧