找回密码
 立即注册

QQ登录

只需一步,快速开始

flysky9981

初级会员

28

主题

132

帖子

340

积分

初级会员

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

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



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

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

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

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


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

之后,我试着将

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

请问这是什么原因呢?

本帖子中包含更多资源

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

x

20 个回复

正序浏览
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-9-3 18:06:44
21#
flysky9981 发表于 2021-9-3 17:42
哦哦,我一直以为活字格的级联是在orm层实现的,不想在数据库里加外键约束

是可以的,您可以先试试~
回复 使用道具 举报
flysky9981
初级会员   /  发表于:2021-9-3 17:42:25
20#
Chelsey.Wang 发表于 2021-9-3 17:31
因为外联库中的逻辑是由外联库自己处理的,如果您使用的外联库,也可以直接在您的外联库中设置外键约束呀 ...

哦哦,我一直以为活字格的级联是在orm层实现的,不想在数据库里加外键约束
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-9-3 17:31:01
19#
flysky9981 发表于 2021-9-3 11:09
我的第一反应也是使用级联操作,可是我用的mysql,发现那个高级设置按钮是灰色的……

因为外联库中的逻辑是由外联库自己处理的,如果您使用的外联库,也可以直接在您的外联库中设置外键约束呀~
回复 使用道具 举报
hxzabb活字格认证
金牌服务用户   /  发表于:2021-9-3 15:33:31
18#
flysky9981 发表于 2021-9-3 15:13
已经改成服务端删除了,前端来做确实不知道怎么做!

用textjoin 把选择项容器选择的id拼起来,子表查在里面
回复 使用道具 举报
flysky9981
初级会员   /  发表于:2021-9-3 15:13:08
17#
lwt 发表于 2021-9-3 14:32
关键问题是循环删除一行表格会重载影响后面的循环操作,你也可用循环命令加服务端命令,把id传到后端去删 ...

已经改成服务端删除了,前端来做确实不知道怎么做!
回复 使用道具 举报
lwt悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-9-3 14:35:36
16#
如果官方能把数据表操作命令加一个选项,操作完成后不重载、重载,像服务端命令一样由开发者决定就方便了。
回复 使用道具 举报
lwt悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-9-3 14:32:37
15#
flysky9981 发表于 2021-9-3 14:25
这样子可能就没法单条用事务了,或者说整个删除就是一个事务,也算是个办法。

关键问题是循环删除一行表格会重载影响后面的循环操作,你也可用循环命令加服务端命令,把id传到后端去删除,服务端删除后返回不做刷新,等整个循环执行完了再刷新就不会有问题了。
回复 使用道具 举报
flysky9981
初级会员   /  发表于:2021-9-3 14:25:17
14#
lwt 发表于 2021-9-3 14:22
不用取出,1.子表.主表id 在里面 id集合 2.主表id 在里面 id集合。数据表命令写这个条件就可以了

这样子可能就没法单条用事务了,或者说整个删除就是一个事务,也算是个办法。
回复 使用道具 举报
lwt悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-9-3 14:22:49
13#
flysky9981 发表于 2021-9-3 11:25
请问如何把表格选择项容器里的ID依次取出呢?

不用取出,1.子表.主表id 在里面 id集合 2.主表id 在里面 id集合。数据表命令写这个条件就可以了
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部