указание конкретных параметров значения для столбца sql - PullRequest
0 голосов
/ 08 марта 2012

Если у меня есть столбец - например, назовите его lettergrade.

Помимо указания, что это CHAR(1), можно ли в любом случае ограничить его A, B, C, D или E при создании?

Ответы [ 3 ]

5 голосов
/ 08 марта 2012
alter table your_table_name add (
  constraint grade_constraint
  check (lettergrade in ('A','B','C','D','E')));
2 голосов
/ 08 марта 2012

На мой взгляд, в данном случае буквенная оценка, я думаю, что проверочное ограничение имеет больше смысла.Внешний ключ имеет больше смысла в том случае, если вам нужно регулярно менять допустимые допустимые значения.В случае буквенной оценки возможности A, B, C, D или E вряд ли изменятся.Кроме того, поскольку проверочное ограничение имеет больше смысла в этом случае, учтите, что оно также меньше накладных расходов, чем ограничение внешнего ключа, которое будет нести дополнительные накладные расходы блокировки.

Надеюсь, что это поможет.

0 голосов
/ 08 марта 2012

Пара способов справиться с этим. Лучшим может быть ограничение внешнего ключа, поскольку это позволит вам легко изменять допустимые значения. Проверочное ограничение также может работать в зависимости от вашей СУБД, но, вероятно, будет менее гибким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...