帆软触发器删除问题

用触发器记录增删改行为,现在我想记录谁删除了记录,帆软有个$fine_username 可以获取当前用户,我增加了该字段,预览时可以直接呈现操作人员,但没有写入数据库,删除记录时如何能让操作人员也存入到触发器的deleted表里呢,以便能往自己建立的操作日志表里插入操作人员呢。。。

因为操作人员没有存储到数据表里,无法获取,有何办法呢

chyou 发布于 2021-11-30 22:06
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
shirokoLv6资深互助
发布于2021-11-30 22:17

删除操作delete不会有增加和更新操作,自然不可能存储到数据库了。

可以尝试:不让帆软执行删除操作,所有删除操作更改为“将数据状态字段改为‘已删除’”,然后后续会由触发器进行删除数据。这样就会记录下,是谁将数据改为‘已删除’的状态

  • chyou chyou(提问者) 有点难理解。。能否详细点呢
    2021-11-30 22:39 
  • shiroko shiroko 回复 chyou(提问者) 增加一个字段表示当前数据是否要删除。增加一个触发器,检测并删除所有要删除的数据。填报的删除提交改成更新提交
    2021-11-30 22:43 
  • chyou chyou(提问者) 回复 shiroko 反馈一下:测试时又遇到一个问题,我加了一个删除的标识字段,提交完删除(实际上是更新),同时会往操作表(更新)和日志表(触发)插入,但日志表里sign字段没有“删除”,操作表是有的。。同时我对操作表做了一个触发器把标识“删除”的记录删除了,这个成功了;但想把日志表多余的那个更新记录删除,这样就完美了,因为sign字段无值,没办法再弄个触发删除 ------不知道为何日志表触发器那个sign字段值进不去呢
    2021-12-01 14:58 
  • shiroko shiroko 回复 chyou(提问者) 日志表是设置如何触发的?直接改成如果更新删除,就不向日志表插入可以吗
    2021-12-01 15:54 
  • chyou chyou(提问者) 回复 shiroko 哈哈,可以了,是因为标识字段是我新增的,更新了触发器,drop后再建立就可以了,多谢了
    2021-12-01 16:06 
最佳回答
0
axingLv6专家互助
发布于2021-11-30 22:11

填报属性里面选择公式类型,值为$fine_username,记得预览的时候要先登录

image.png

  • chyou chyou(提问者) 呃,这个需要提交后才能写入数据库。。。我不是这个意思
    2021-11-30 22:31 
  • axing axing 回复 chyou(提问者) 先把这个字段提交到表里,再用触发器把它写到日志,或者你可以在填报成功事件上直接提交到日志表
    2021-11-30 23:52 
  • chyou chyou(提问者) 回复 axing 有点不理解,有问题的是删除记录,删除操作不会先把操作人写到表里,日志是通过触发写入的,但删除时没有操作人字段; 填报成功后根据删除的ID update log set operator=$fine_username where id=? id怎么获取
    2021-12-01 09:28 
  • 3关注人数
  • 330浏览人数
  • 最后回答于:2021-11-30 22:17
    请选择关闭问题的原因
    确定 取消
    返回顶部