|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有了rowbase的binlog后,我们来分析一下怎么实现闪回。平时的DML无非三种操作,增删改,先说三种操作的日志格式。日历|数据|数据库
让数据库发生一张具体的日历表
大概有了这张表,你的事情会轻松良多!
CREATETABLE[dbo].[time_dimension](
[time_id][int]IDENTITY(1,1)NOTNULL,
[the_date][datetime]NULL,
[the_day][nvarchar](15)NULL,
[the_month][nvarchar](15)NULL,
[the_year][smallint]NULL,
[day_of_month][smallint]NULL,
[week_of_year][smallint]NULL,
[month_of_year][smallint]NULL,
[quarter][nvarchar](2)NULL,
[fiscal_period][nvarchar](20)NULL
)ON[PRIMARY]
DECLARE@WeekStringvarchar(12),
@dDateSMALLDATETIME,
@sMonthvarchar(20),
@iYearsmallint,
@iDayOfMonthsmallint,
@iWeekOfYearsmallint,
@iMonthOfYearsmallint,
@sQuartervarchar(2),
@sSQLvarchar(100),
@adddaysint
SELECT@adddays=1--日期增量(能够自在设定)
SELECT@dDate=01/01/2002--入手下手日期
WHILE@dDate<12/31/2004--停止日期
BEGIN
SELECT@WeekString=DATENAME(dw,@dDate)
SELECT@sMonth=DATENAME(mm,@dDate)
SELECT@iYear=DATENAME(yy,@dDate)
SELECT@iDayOfMonth=DATENAME(dd,@dDate)
SELECT@iWeekOfYear=DATENAME(week,@dDate)
SELECT@iMonthOfYear=DATEPART(month,@dDate)
SELECT@sQuarter=Q+CAST(DATENAME(quarter,@dDate)asvarchar(1))
INSERTINTOtime_dimension(the_date,the_day,the_month,the_year,
day_of_month,
week_of_year,month_of_year,quarter)VALUES
(@dDate,@WeekString,@sMonth,@iYear,@iDayOfMonth,@iWeekOfYear,
@iMonthOfYear,@sQuarter)
SELECT@dDate=@dDate+@adddays
END
GO
select*fromtime_dimension
MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的的女儿也叫My。 |
|