如何在 SQL 中获取记录删除日期?

Posted

技术标签:

【中文标题】如何在 SQL 中获取记录删除日期?【英文标题】:How to get the record deletion date in SQL? 【发布时间】:2020-03-24 11:16:33 【问题描述】:

我需要从 stdnt 表中删除特定学生并将该学生数据插入到新表 stdnt_log 中,其中包括“leaving_date”字段,这将是记录的删除日期

sql = "INSERT INTO stdnt_log SELECT rollno, name, grade, leaving_date FROM stdnt WHERE rollno = ?";

sql = "DELETE FROM stdnt WHERE rollno = ?";

【问题讨论】:

您可以使用sysdate。这应该在触发器中完成,而不是在应用程序级别。 【参考方案1】:

更简单的选项 - 如果您可以/想要应用它 - 是更改 stdnt 表并添加另一列:deactivation_date

alter table stdnt add deactivation_date date;

一旦有人被停用,只需更新该列:

update stdnt set 
  deactivation_date = sysdate
  where student_id = some_value;

然后是活跃的学生

select * from stdnt where deactivation_date is null;

实现更简单,更易于维护。退税?表格会越来越大,但是嘿,这是 Oracle,它可以毫无问题地处理 zillions 行。

【讨论】:

以上是关于如何在 SQL 中获取记录删除日期?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 如何获取数据表中离当前日期最近的数据

如何获取公司未在 Sql 中记录的每个公司的日期?

如何在 SQL Server 中从今天的日期获取 > 240 天的数据,其中某些记录的特定单元键在 240 天之内和之外

SQL:如何获取最近的记录

在Linux中如何删除指定日期之前的一些文件?

如何在 PL SQL 中添加带有 INSERT INTO SELECT 的日期?