将历史数据加载到 teradata temporal table
Load Historical data to teradata temporal table
我的任务是将现有 SQL 服务器 table 加载到 Teradata temporal table。现有的table是类型2table,有很多版本的记录。我需要将它们加载到 teradata temporal table。我打算加载第 1 版,然后一一更新所有其他版本。
我遇到的困难是,在现有 table 中,每条记录都有开始时间和结束时间。我需要在 teradata temporal table 中更新该时间作为有效性。
1st 我正在尝试插入,但在插入时我无法插入小于当前时间的结束时间。它将错误报告为 "Check constraint violation"。下面是创建 table 和插入的示例代码。
我还没有测试更新,因为无法执行第一步。
CREATE multiset TABLE EDW_T.edw_Contracts_History_Test
(
ID INTEGER,
Validity PERIOD(TIMESTAMP(3)) NOT NULL AS VALIDTIME
);
insert into EDW_T.edw_Contracts_History_Test(id,Validity) values(
1,period(cast('1996-01-20 05.00.00.000' as TIMESTAMP(3)), cast('2016-06-23 21.52.20.000' as TIMESTAMP(3))))
--this pass as 2016 is greater than current date
insert into EDW_T.edw_Contracts_History_Test(id,Validity) values(
1,period(cast('1996-01-20 05.00.00.000' as TIMESTAMP(3)), cast('2015-06-23 21.52.20.000' as TIMESTAMP(3))))
--This fails as i m trying to give end time less than current date.
是否可以将结束时间设置为小于当前日期。以任何方式暂时禁用此约束然后启用。
请帮忙。谢谢!
要插入历史记录行,您应该使用序列有效时间修改器...
例如:
SEQUENCED VALIDTIME
insert into EDW_T.edw_Contracts_History_Test(id,Validity) values(
1,period(cast('1996-01-20 05.00.00.000' as TIMESTAMP(3)), cast('2015-06-23 21.52.20.000' as TIMESTAMP(3))));
我的任务是将现有 SQL 服务器 table 加载到 Teradata temporal table。现有的table是类型2table,有很多版本的记录。我需要将它们加载到 teradata temporal table。我打算加载第 1 版,然后一一更新所有其他版本。 我遇到的困难是,在现有 table 中,每条记录都有开始时间和结束时间。我需要在 teradata temporal table 中更新该时间作为有效性。
1st 我正在尝试插入,但在插入时我无法插入小于当前时间的结束时间。它将错误报告为 "Check constraint violation"。下面是创建 table 和插入的示例代码。
我还没有测试更新,因为无法执行第一步。
CREATE multiset TABLE EDW_T.edw_Contracts_History_Test
(
ID INTEGER,
Validity PERIOD(TIMESTAMP(3)) NOT NULL AS VALIDTIME
);
insert into EDW_T.edw_Contracts_History_Test(id,Validity) values(
1,period(cast('1996-01-20 05.00.00.000' as TIMESTAMP(3)), cast('2016-06-23 21.52.20.000' as TIMESTAMP(3))))
--this pass as 2016 is greater than current date
insert into EDW_T.edw_Contracts_History_Test(id,Validity) values(
1,period(cast('1996-01-20 05.00.00.000' as TIMESTAMP(3)), cast('2015-06-23 21.52.20.000' as TIMESTAMP(3))))
--This fails as i m trying to give end time less than current date.
是否可以将结束时间设置为小于当前日期。以任何方式暂时禁用此约束然后启用。
请帮忙。谢谢!
要插入历史记录行,您应该使用序列有效时间修改器...
例如:
SEQUENCED VALIDTIME
insert into EDW_T.edw_Contracts_History_Test(id,Validity) values(
1,period(cast('1996-01-20 05.00.00.000' as TIMESTAMP(3)), cast('2015-06-23 21.52.20.000' as TIMESTAMP(3))));