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



我需要从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 = ?";

如果可以/想要应用它,更简单的选项是更改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,它可以毫无问题地处理无数行。

相关内容

  • 没有找到相关文章

最新更新