在同一事务中获取/选择已删除的行

时间:2016-03-28 17:01:09

标签: mysql

是否可以"看"在commit之前删除了同一事务中的行?

我需要在TRIGGER AFTER DELETE中执行此操作,我需要选择由级联约束删除的已删除行

更新

这听起来不太可能..所以我想稍微编辑一下我的问题..是否有可能/有一种快速的方法来收集TRIGGER BEFORE DELETE和&#中的行ID 34;发送"他们到TRIGGER AFTER DELETE

2 个答案:

答案 0 :(得分:0)

检查这个oracle文档,如果我明白你需要这个.. http://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr002.htm

答案 1 :(得分:0)

不确定您的问题究竟是什么,但也许此信息会对您有所帮助。

一般情况下,我不建议向任何人授予删除权限,意外删除可能会带来灾难性的后果。而不是执行删除而是标记要删除的行,只是将它们隐藏在前端。然后,如有必要,您最终可以手动删除它们。

如果要在执行此操作之前检查要删除的内容,则必须先准备一个脚本,而不是执行DELETE先打印查询,或显示要删除的行。保持可能这样做可能会危及您的安全。如果您只想查看要删除的内容,可以SELECT COUNT首先删除要删除的项目并打印如下内容:"您即将永久删除x项目。那可以吗?"

如果您需要进行测试,以显示已删除的内容等,请使用MySQL Server Logs。它们可能在默认情况下处于关闭状态,但这取决于您的配置(通常默认情况下仅启用错误日志)。然后你可以检查一般查询日志,但它只记录执行的查询,所以你只会看到有人执行了DELETE FROM x WHERE y=z,但你不会看到实际被删除的值,只看到执行的查询。另外,请记住,一般查询日志可以根据您的工作流程快速增长,另一方面可以让您深入了解特定用户在遇到错误之前所做的最后事情等。

这有什么帮助你吗?如果您需要有关特定主题的更多信息发表评论,我将进行相应的编辑。