我正在使用的 Web 应用程序有一个巨大的数据库,它真的一团糟,没有外键,没有约束,没有索引,没有优化,没有规范化,什么都没有。到目前为止,逻辑一直是:如果您需要一个字段,则添加它,如果您需要一个表,则尽可能快地创建它。一开始,我无法理解这些错误的严重性,但不得不一直处理由坏数据库造成的障碍,这让我决定重新设计整个数据库。我需要知道的是:
我有一个程序如下:
create procedure MoveDailyData
@date1 bigint
as
declare @datenow bigint
set @datenow = datediff(S,'01/01/1970',getdate())
if ((@datenow)-@date1)>=86400
begin
insert into FinalLogs(problem,channel_number,username,app_id,Is_On,logtype,viewing_channel,playtime,macaddress,wifimacaddress,seen,version,date)
select problem,channel_number,username,app_id,Is_On,logtype,viewing_channel,playtime,macaddress, wifimacaddress,seen,version,date from DayTempTable
delete from DayTempTable where (@datenow-@date1)>=86400
end
else select 'Not Yet';
Run Code Online (Sandbox Code Playgroud)
该过程应将数据从 1 个临时表复制到最后一个(按每日计划),然后从临时表中删除该数据。相反,我注意到每隔几天,数据不会被复制,而只是从临时表中删除,因此我丢失了大量相关数据。该date
列是一个bigint
(日期另存为unix time
)。在这个过程中我做错了什么吗?