Вам необходимо добавить TRIGGER, чтобы проверить это ограничение.
Прежде чем приступить к программированию этого триггера, я думаю, что ваша модель данных может быть дополнительно оптимизирована. МЕНЕДЖЕРЫ должны иметь FK для таблицы EMPLOYEES. Таблица СОТРУДНИКОВ (и КЛИЕНТОВ) должна иметь FK в таблице PEOPLE.
Создание таблицы для хранения всего одного экземпляра (одна запись) является чем-то редким. У вас может быть ограничение между таблицей ORGANIZATIONS и MANAGERS, выражая, что у Организации может быть только один Менеджер. Сделайте это, определив FK из ORGANIZATIONS MANAGERS. Если вы хотите установить ограничение на то, что Организация всегда должна иметь Менеджер, добавьте NOT NULL в определение FK для MANAGERS.
CREATE TABLE ORGANISATIONS (
Id INTEGER NOT NULL,
...
ManagerId INTEGER NOT NULL,
...
)
Когда вы это делаете, вам не нужен триггер. Триггеры могут быть сложными. Когда вы можете избежать их использования, не используйте их. Это «темная материя» в базе данных. Вы можете найти материал в своей базе данных, который никто не вводил. Шансы высоки, что является работой какого-то неясного триггера. Иногда, когда вы меняете таблицу, триггеры, определенные на ней, могут стать неактивными. Внезапно ваша база данных больше не функционирует, как должна ... Темная материя.
Не с ограничением CHECK, я думаю. Из [manual] (http://dev.mysql.com/doc/refman/5.6/en/create-table.html «CREATE TABLE (MySQL)»): * Предложение CHECK анализируется, но игнорируется всеми механизмами хранения данных . * –