шалом
исходные:
2.5.7
автоматизация закрытия прошлых периодов.
что-то удаляется, что-то актуальное остается, но должно ссылаться (если ссылалось) на прошлые периоды.
таблиц много. около 500.
disclamer:
да, нуллы - это зло
да, обходные пути существуют и несколько штук я знаю
внимание, вопрос:
возможно ли при удалении записей из мастера, через каскады, установить заданное ссылочное значение в слейве, не порушив при этом NULL?
в руки просится on delete SET DEFAULT VALUE -99, но такой конструкции нет :(
default на поле приписывает неверные ссылки.
должно перевести все записи, кроме двух, на -99.
исходные:
2.5.7
автоматизация закрытия прошлых периодов.
что-то удаляется, что-то актуальное остается, но должно ссылаться (если ссылалось) на прошлые периоды.
таблиц много. около 500.
disclamer:
да, нуллы - это зло
да, обходные пути существуют и несколько штук я знаю
внимание, вопрос:
возможно ли при удалении записей из мастера, через каскады, установить заданное ссылочное значение в слейве, не порушив при этом NULL?
в руки просится on delete SET DEFAULT VALUE -99, но такой конструкции нет :(
default на поле приписывает неверные ссылки.
delete from MASTER where ID > 0;
должно перевести все записи, кроме двух, на -99.
create domain PK bigint not null; create domain FK bigint not null; create domain FK_NULL bigint; create domain Dao_De_Jing varchar(5000); create table MASTER( ID PK, COMMENT Dao_De_Jing, constraint MASTER primary key(ID) ); insert into MASTER( ID, COMMENT) values ( -99, 'Было такое'); insert into MASTER( ID, COMMENT) values ( 0, 'Непознанное'); insert into MASTER( ID, COMMENT) values ( 1, 'Непознаваемое'); insert into MASTER( ID, COMMENT) values ( 2, 'Актуальное'); create table SLAVE( ID PK, ID_MASTER FK_NULL, COMMENT Dao_De_Jing, constraint SLAVE primary key(ID), constraint SLAVE_MASTER foreign key(ID_MASTER) references MASTER(ID) on delete SET DEFAULT ); insert into SLAVE(ID, ID_MASTER, COMMENT) values (1, 1, 'Дао'); insert into SLAVE(ID, ID_MASTER, COMMENT) values (2, 0, 'Дэ'); insert into SLAVE(ID, ID_MASTER, COMMENT) values (3, 2, 'Человеколюбие'); insert into SLAVE(ID, ID_MASTER, COMMENT) values (4, 2, 'Справедливость'); insert into SLAVE(ID, ID_MASTER, COMMENT) values (5, 2, 'Ритуал'); insert into SLAVE(ID, ID_MASTER, COMMENT) values (6, 2, 'Смута'); insert into SLAVE(ID, COMMENT) values (7, 'А это не мастер говорил');