是否有可能找到哪些表在过去n天内有新数据?

时间:2016-05-11 11:00:15

标签: mysql sql

我当前的项目不使用任何数据库迁移,因此如果出现任何更改,则可以手动找到它们。

是否有可能找出数据库中哪些表具有在过去n天(例如7天)中创建的新行?

感谢您的任何建议!

3 个答案:

答案 0 :(得分:0)

创建一个Trigger for insert,使表中的值为1,如新插入,或者0表示插入....之前是一个标志,表示添加了新值...然后你可以创建一个更新语句以确保它们都取0值...这样每次在表中插入时,都会将此列添加为1 示例:

id     StudentName    flag
1      Frank          0
2      Andrew         1


insert into tablename(id,StudentName,flag) Values(3,'Alice',1)

始终将标志设为1,以便知道它是新记录,并且最近已添加。

update tablename set flag = 0 

这个判断以确保所有插入之前并且它不是新的!!

答案 1 :(得分:0)

创建一个公用表,显示何时更新表

创建表TableUpdatedRrecord(Table_Name varchar(max),Flag int,TableCreatedDate DateTime,Modified Date)

答案 2 :(得分:0)

首先创建在表格中插入新行时记录的表

Create table TableUpdatedRrecord (Table_Name varchar(max),Flag INT,TableCreatedDate DateTime,Modified DatetIME) 现在为每个表创建一个触发器,当表有一个新的插入

时执行该触发器

创建TRIGGER TriggerName ON dbo.TableName 插入后作为 开始 DECLARE @CreatedDate datetime 设置@ CreatedDate =(从sys.tables中选择t.create_date,其中name ='TableName') INSERT INTO TableUpdatedRrecord            (TABLE_NAME,[标志],[TableCreatedDate],[修改])      VALUES            (“表名”            ,1            ,@创建日期            ,GETDATE()) END