Можно ли (в PostgreSQL) создать ограничение, которое говорит, что столбец должен иметь значение null или содержать значение из другого столбца в другой таблице? Другими словами, объединить ограничение CHECK с ограничением FOREIGN KEY?
Я хотел бы определить, что столбец должен быть нулевым или содержать значение из другого столбца. Целью в этом случае является проверка того, что выбранный пользователем язык входит в список поддерживаемых языков или не задан (оставлено как нулевое).
Итак, что-то в строках этого (что не работает):
ALTER TABLE MyTable ADD CONSTRAINT my_constraint
CHECK (languageCode IS NULL) OR (languageCode) REFERENCES Languages (languageCode)