如何在 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 中获取记录删除日期?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 中从今天的日期获取 > 240 天的数据,其中某些记录的特定单元键在 240 天之内和之外