Предположим, у нас есть данные в коллекции test1 с полями: ParentID, InhID, Name, Potatoe
Если я понимаю, что вы пытаетесь сделать, вы могли бы:
Обновите одновременно родителей и детей примерно так:
for t in test1
Filter t.ParentID == 1
update t WITH { Potatoe: "baked" , Name: "Doc_2"} IN test1
Обновите сначала родителя, а затем детей (в другое время, я полагаю):
Step1
for t in test1
Filter t.ParentID == 1 AND t.InhID == 0
update t WITH { Potatoe: "baked" , Name: "Doc_2"} IN test1
Шаг 2
let Parent = (for p in test1
Filter p.ParentID == 1 AND p.InhID == 0
return p)
for p1 in Parent
for Children in test1
Filter Children.ParentID == p1.ParentID AND Children.InhID > p1.InhID
update Children WITH {Potatoe: p1.Potatoe, Name: p1.Name} IN test1
С точки зрения триггеров, в Аранго такого нет. Я лично считаю, что это хорошо, потому что триггеры, как правило, вызывают больше проблем, чем они того стоят. Вместо этого я бы построил средний уровень с необходимой логикой, чтобы все внешние программы проходили через средний уровень, а не обращались к коллекциям напрямую. Вы можете построить это в слое Arango Foxx, который находится в самой БД. Здесь - документация для Foxx
Наконец, вы задумывались об изменении структуры базы данных из одной таблицы, которая содержит как данные, так и неявные отношения наследования (на основе InhID), в коллекцию и явные отношения наследования с использованием отношения ребер? В зависимости от того, что вы делаете, это может (или не может) быть полезным.