У меня есть таблица с простым иерархическим отношением родитель-потомок к себе. Вместо использования вложенного набора я добавил столбец root_id
, чтобы можно было загружать всех потомков одного корня одним запросом.
create table tree (
id serial primary key,
root_id int not null default id, -- error
parent_id int,
...
);
Я бы хотел сделать этот столбец not null
, но значением для новых корней будет значение собственного первичного ключа корня, которое недоступно до вставки. Есть ли способ использовать значение первичного ключа строки в качестве значения по умолчанию для столбца root_id
?