请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

flysky9981

初级会员

28

主题

132

帖子

340

积分

初级会员

积分
340
flysky9981
初级会员   /  发表于:2021-9-2 18:37  /   查看:4474  /  回复:20
我有一个主表和多个子表,现在想实现删除主表数据时相应所有子表的数据均删除。
实现方式如下:

页面中有一个主表的表格1,已经开启了多选。所以我使用循环命令,循环次数选择了表格1中被选择的行数。



然后设置一个数据表操作-删除命令,并开启了事务:

其中D6是对应表格1中绑定的主表数据的ID的模板列。
需要删除的子表数据有三个。删除顺序是先依次删除子表数据,最后删除主表数据。

下面是删除主表数据的命令:

以上所有的删除操作都在一个事务内(前端命令)


但是这样设置之后,试了多次,每次都是主表记录能全删掉,但是子表记录则只有与主表中选中的所有行中的第一行记录相关联的数据能删掉。

之后,我试着将

切换为特定行、选择行
效果都是一样的。

请问这是什么原因呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

20 个回复

倒序浏览
hxzabb活字格认证
金牌服务用户   /  发表于:2021-9-3 10:01:33
沙发
是因为你删除子表的条件是子表中的主表id等于某一个主表ID,这肯定是只能删除主表id第一行的子表数据,你可以在隐藏单元格中,把要删除的主表id选出来,然后子表查询的时候,查在里面!其实这种情况,最好的方式是选择服务端命令,很方便就解决了
回复 使用道具 举报
flysky9981
初级会员   /  发表于:2021-9-3 10:15:32
板凳
hxzabb 发表于 2021-9-3 10:01
是因为你删除子表的条件是子表中的主表id等于某一个主表ID,这肯定是只能删除主表id第一行的子表数据,你可 ...

嗯嗯,服务端命令的办法我知道的,其实我就想知道按照上面那么操作到底是本身就办不到,还是说我的设置有错
回复 使用道具 举报
hxzabb活字格认证
金牌服务用户   /  发表于:2021-9-3 10:37:48
地板
flysky9981 发表于 2021-9-3 10:15
嗯嗯,服务端命令的办法我知道的,其实我就想知道按照上面那么操作到底是本身就办不到,还是说我的设置有 ...

你可以在隐藏单元格中,把要删除的主表id选出来,然后子表查询的时候,查主表id在里面
回复 使用道具 举报
hxzabb活字格认证
金牌服务用户   /  发表于:2021-9-3 10:48:55
5#
做了小demo可参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-9-3 10:58:20
6#
您好,其实不需要这么复杂的,您可以在设置子表时,在高级设置中开启外键约束,将子表的删除模式设置为“级联删除”即可。
这样删除主表中的记录时,如果有对应的从表记录,则主表中的记录被删除,从表中对应的记录也将被删除。
子表的删除模式 - 活字格V7帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
flysky9981
初级会员   /  发表于:2021-9-3 11:06:15
7#
Chelsey.Wang 发表于 2021-9-3 10:58
您好,其实不需要这么复杂的,您可以在设置子表时,在高级设置中开启外键约束,将子表的删除模式设置为“级 ...

请问这个设置对数据库有要求吗?我用的mysql
回复 使用道具 举报
flysky9981
初级会员   /  发表于:2021-9-3 11:06:32
8#
hxzabb 发表于 2021-9-3 10:48
做了小demo可参考

感谢
回复 使用道具 举报
lwt悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-9-3 11:08:12
9#
前台命令循环和数据表命令不在一个事务中。循环到第一行执行删除后会对表格数据重新加载,导致删除异常。建议采用“表格选择项容器”插件取到主表id后用在里面作条件进行删除。
回复 使用道具 举报
flysky9981
初级会员   /  发表于:2021-9-3 11:09:57
10#
Chelsey.Wang 发表于 2021-9-3 10:58
您好,其实不需要这么复杂的,您可以在设置子表时,在高级设置中开启外键约束,将子表的删除模式设置为“级 ...

我的第一反应也是使用级联操作,可是我用的mysql,发现那个高级设置按钮是灰色的……
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部