删除行并返回已删除行的ID

时间:2016-10-16 01:34:11

标签: mysql sql

是否可以删除行并返回已删除行的值?

示例 DELETE FROM table where time <= -1 week SELECT all id that were deleted

2 个答案:

答案 0 :(得分:3)

如果要控制数据库中的操作,可以考虑使用JOURNAL表。 SO中有一个问题here

它们是一个镜像表,通常由执行操作的触发器填充(更新,删除)。它存储“旧值”(您可以随时从主表中获取的当前值)。

如果这样实施,您可以从日记帐表中选择并完全具备您需要的内容。

试着举个例子:

表USER

CREATE TABLE USER (
   INT id,
   VARCHAR name
)

表USER_JN

CREATE TABLE USER_JN (
    INT id,
    VARCHAR name,
    VARCHAR operation
)

然后,对于每个操作,您可以填充USER_JN并具有所有更改的历史记录(您不应该在其中有约束)。

如果您删除,您的operation列将具有delete值,您可以使用您的选择来检查。

这并不完全是“选择已删除的行”,而是一种使其成为可能的方法。

希望它在某种程度上有用。

答案 1 :(得分:1)

SELECT id FROM table WHERE time&lt; = -1 week

然后简单地

DELETE FROM table WHERE time&lt; = -1 week