# Наследование объявлений таблицы и источника

Наследование в объявлениях `table` и `source` помогает лучше организовать таблицы с похожими настройками или структурой и уменьшает размер конфигурации. Наследование можно использовать и в родительских, и в дочерних таблицах или источниках.

Для родительской таблицы или источника не требуется никакой специальной конфигурации.

В объявлении дочерней таблицы или источника укажите имя таблицы или источника, затем двоеточие (:) и имя родителя:

```ini
table parent {
path = /var/lib/manticore/parent
...
}

table child:parent {
path = /var/lib/manticore/child
...
}
```

Дочерний объект унаследует всю конфигурацию родителя. Любые настройки, объявленные в дочернем объекте, переопределят унаследованные значения. Имейте в виду, что для многозначных настроек указание одного значения в дочернем объекте очистит все унаследованные значения. Например, если у родителя есть несколько объявлений `sql_query_pre`, а у дочернего объекта есть одно объявление `sql_query_pre`, все унаследованные объявления `sql_query_pre` будут удалены. Чтобы переопределить только часть унаследованных значений родителя, явно объявите их в дочернем объекте. Это также подходит, если вам не нужно значение из родителя. Например, если значение `sql_query_pre` от родителя не требуется, объявите директиву с пустым значением в дочернем объекте, например `sql_query_pre=`.

Обратите внимание, что существующие значения многозначной настройки не будут скопированы, если дочерний объект объявляет для этой настройки одно значение.

Такое поведение наследования относится не только к параметрам таблицы, но и к полям и атрибутам. Например, если у родителя есть два целочисленных атрибута, а дочернему объекту нужен новый целочисленный атрибут, объявления целочисленных атрибутов из родителя нужно скопировать в конфигурацию дочернего объекта.
<!-- proofread -->
