Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
при любом изменении записи ее копия вставляется в другую похожую таблицу (эта табличка находится в другой базе, правда в том же экземпляре СУБД)
^Media("CommercialIntention",45537379,0,"LicenseID")=71
^Media("CommercialIntention",45537379,0,"Type")="CommercialIntention"
^Media("CommercialIntention",45537379,0,"UpdateTime")="61950,40226.87313"
^Media("CommercialIntention",45537379,0,"baseOrderList")=45999067
^Media("CommercialIntention",45537379,0,"classifiedList")=45999066
^Media("CommercialIntention",45537379,0,"editionId")=6
^Media("CommercialIntention",45537379,0,"editorLicenseID")=71
^Media("CommercialIntention",45537379,0,"statusId")=2
^Media("CommercialIntention",45537379,1,"LicenseID")=45
^Media("CommercialIntention",45537379,1,"Type")="CommercialIntention"
^Media("CommercialIntention",45537379,1,"UpdateTime")="61944,39328.740813"
^Media("CommercialIntention",45537379,1,"baseOrderList")=45537378
^Media("CommercialIntention",45537379,1,"classifiedList")=45537377
^Media("CommercialIntention",45537379,1,"editionId")=6
^Media("CommercialIntention",45537379,1,"sourceTypeId")=50140
^Media("CommercialIntention",45537379,1,"statusId")=1
^Media("CommercialIntention",45537379,2,"LicenseID")=71
^Media("CommercialIntention",45537379,2,"Type")="CommercialIntention"
^Media("CommercialIntention",45537379,2,"UpdateTime")="61944,39807.398159"
^Media("CommercialIntention",45537379,2,"baseOrderList")=45537575
^Media("CommercialIntention",45537379,2,"classifiedList")=45537574
^Media("CommercialIntention",45537379,2,"editionId")=6
^Media("CommercialIntention",45537379,2,"editorLicenseID")=71
^Media("CommercialIntention",45537379,2,"statusId")=2
^Media("CommercialIntention",45537379,3,"LicenseID")=71
^Media("CommercialIntention",45537379,3,"Type")="CommercialIntention"
^Media("CommercialIntention",45537379,3,"UpdateTime")="61950,37803.280408"
^Media("CommercialIntention",45537379,3,"adTypeId")=30202
^Media("CommercialIntention",45537379,3,"baseOrderList")=45996926
^Media("CommercialIntention",45537379,3,"classifiedList")=45996925
^Media("CommercialIntention",45537379,3,"editionId")=6
^Media("CommercialIntention",45537379,3,"editorLicenseID")=55
^Media("CommercialIntention",45537379,3,"sourceTypeId")=50140
^Media("CommercialIntention",45537379,3,"statusId")=3
^Media("CommercialIntention",45537379,4,"LicenseID")=71
^Media("CommercialIntention",45537379,4,"Type")="CommercialIntention"
^Media("CommercialIntention",45537379,4,"UpdateTime")="61950,40193.904669"
^Media("CommercialIntention",45537379,4,"baseOrderList")=45999039
^Media("CommercialIntention",45537379,4,"classifiedList")=45999038
^Media("CommercialIntention",45537379,4,"editionId")=6
^Media("CommercialIntention",45537379,4,"editorLicenseID")=71
^Media("CommercialIntention",45537379,4,"statusId")=8
В случаях использования полей начала и конца версии
drop table scdtest;
create table scdtest(s_code varchar2(10), s_value varchar2(10), s_start_date date not null, s_end_date date, s_latest varchar2(10) as (decode(s_end_date, null, s_code, null)));
alter table scdtest add constraint unq_s_start_date unique (s_code, s_start_date);
alter table scdtest add constraint unq_s_latest unique (s_latest) deferrable INITIALLY DEFERRED;
alter table scdtest add constraint fk_s_s foreign key (s_code, s_end_date) references scdtest (s_code, s_start_date) deferrable INITIALLY DEFERRED;
-- открываем интервал
insert into scdtest (s_code, s_value, s_start_date, s_end_date) values ('A' ,'A1', to_date('01.01.2000', 'DD.MM.YYYY'), null);
commit;
-- продложаем интервал
update scdtest set s_end_date = to_date('01.01.2001', 'DD.MM.YYYY') where s_latest = 'A';
insert into scdtest (s_code, s_value, s_start_date, s_end_date) values ('A' ,'A2', to_date('01.01.2001', 'DD.MM.YYYY'), null);
commit;
хотелось бы, кстати, узнать какие СУБД это поддерживают
Версионность и история данных