Наличие ограничения не позволяет пользователю сохранить запись, в которой выражение в ограничении возвращает false.
Список, из которого пользователь может выбрать значения для reference-поля, учитывает ограничения - т.е. у пользователя нет возможности выбрать значение поля, если запись с этим значением не проходит проверку.
Ограничение: В таблице "Должности сотрудников" (hrm.posts_for_people) в поле "Сотрудник" можно выбрать только Сотрудника.
Предположим, сотрудник помечается с помощью поля is_employee
таблицы base.people
. Тогда чтобы ограничить выбор человека в "Должностях сотрудников" только сотрудниками добавляем ограничение:
Без ограничения: В списке возможных значений для поля "Сотрудник" отображаются все значения из таблицы base.people
C ограничением: В списке возможных значений для поля "Сотрудник" отображаются только значения из таблицы base.people
удовлетворяющие условию people.is_employee = true
При изменении значения поля в базе получаю ошибку "Ошибка сохранения изменений: Operation execution failed: Error while executing: 23000: integrity_constraint_violation"
Значение, которое вы пытаетесь установить, не проходит одну или несколько проверок (check constraints), в которых используется это поле.