Опубликован: 11.12.2006 | Уровень: специалист | Доступ: свободно
Лекция 16:

Создание и использование умолчаний, ограничений и правил

Колонка item_id в таблице items – это колонка с первичным ключом (рис. 16.18). Это единственный "кандидат" для ссылки по внешнему ключу, так как для таблицы items не задано никаких ограничений UNIQUE. Чтобы создать связь по внешнему ключу между колонкой item_id таблицы inventory и колонкой item_id таблицы items, выполните следующие шаги.

  1. Щелкните на крайней левой ячейке (серый квадрат) строки для колонки item_id таблицы items и, удерживая кнопку мыши, перетащите курсор мыши на таблицу inventory. (Вы увидите пунктирную линию, сопровождающую курсор.) Отпустите кнопку мыши, когда окажетесь на строке для колонки item_id таблицы inventory. Появится диалоговое окно Create Relationship (Создать связь), показанное на рис. 16.19. Оно устроено аналогично окну Properties (окна Design Table), которое было показано выше. Колонка item_id появится в столбце каждой таблицы этого диалогового окна, указывая, что связь по внешнему ключу будет задана между двумя колонками item_id.
    В Диалоговое окно Create Relationship (Создать связь), где показана предложенная связь по внешнему ключу

    Рис. 16.19. В Диалоговое окно Create Relationship (Создать связь), где показана предложенная связь по внешнему ключу
  2. Если нужно, вы можете изменить имя этой связи. Установите или сбросьте флажки внизу этого диалогового окна, чтобы выбрать нужные вам опции. Эти флажки были описаны выше в этой лекции.
  3. По окончании щелкните на кнопке OK, чтобы создать в схеме связь между таблицами (рис. 16.20). (Она еще не сохранена.) Линия с изображением ключа направлена от таблицы с внешним ключом к ссылочной таблице.
      Схема базы данных, где показана связь по внешнему ключу

    Рис. 16.20. Схема базы данных, где показана связь по внешнему ключу
  4. Щелкните на кнопке Save, чтобы сохранить ваши изменения. У вас будет запрошено имя схемы базы данных, и затем нужно будет подтвердить внесение изменений в соответствующие таблицы. Для завершения щелкните на кнопке Yes.

Чтобы модифицировать ограничение FOREIGN KEY, вы можете использовать аналогичным образом оба метода, описанных в данном разделе. В окне Design Table снова откройте вкладку Relationships, внесите изменения и сохраните свою работу. В схеме базы данных щелкните правой кнопкой мыши на линии связи по внешнему ключу и выберите пункт Properties для внесения изменений в соответствующее ограничение или выберите пункт Delete Relationship From Database (Удалить связь из базы данных), чтобы полностью удалить это ограничение. Если нужно, вы можете затем создать новое ограничение.

Ограничение CHECK

Чтобы создать ограничение CHECK с помощью окна Design Table, откройте это окно для таблицы, с которой хотите работать, и выполните следующие шаги.

  1. Щелкните правой кнопкой мыши на окне Design Table и выберите из контекстного меню пункт Properties, чтобы появилось окно Properties. Щелкните на вкладке Check Constraints (Ограничения Check) (рис. 16.21) и щелкните на кнопке New для таблицы items.
     Вкладка Check Constraints (Ограничения Check) окна Properties

    Рис. 16.21. Вкладка Check Constraints (Ограничения Check) окна Properties
  2. Далее введите выражение, которое хотите использовать для проверки данных, которые будут вводиться или обновляться. В нашем примере мы добавим ограничение CHECK по колонке price таблицы items, чтобы можно было помещать значения только от $1,00 до $1000,00 (рис. 16.22).
  3. Обратите внимание на три флажка внизу этого окна. Установка флажка Check existing data on creation означает, что существующие данные таблицы будут проверяться на соответствие ограничению CHECK и если они не согласуются, то ограничение не будет создано. Установка флажка Enforce constraint for replication (Проверять ограничение для репликации) означает, что данное ограничение будет проверяться при репликации данных. Данные проверяются перед тем, как они попадут в исходную таблицу, т.е. установка этого флажка означает, что во время репликации будет выполняться повторная (т.е. ненужная) проверка данных. Установка флажка Enforce constraint for INSERTs and UPDATEs (ограничение для INSERT и UPDATE ) просто означает, что ограничение CHECK будет активизировано. Если не установить этот флажок, то данное ограничение будет создано, но оно не будет активизировано, т.е. не будет оказывать никакого влияния.
      Добавление ограничения CHECK по колонке price таблицы items

    Рис. 16.22. Добавление ограничения CHECK по колонке price таблицы items
  4. Щелкните на кнопке Close и затем щелкните на кнопке Save, чтобы сохранить новое ограничение. Чтобы модифицировать ограничение CHECK, используйте вкладку Check Constraint для изменения имени (Constraint name), выражения (Constraint expression) и флажков. На рис. 16.23 ограничение CHECK по колонке price изменено, с диапазона от $1,00 до $1000,00 на диапазон от $1,00 до $99,00.

Отметим, флажок Check existing data on creation теперь сброшен, поскольку ограничение уже было создано. Если вы хотите проверить существующие данные на соответствие модифицированному диапазону, установите этот флажок. Если эта проверка не проходит для существующих данных, то вы получите сообщение об ошибке и ограничение не будет модифицировано.

Вы можете также использовать вкладку Check Constraints для удаления ограничения CHECK, выбрав в списке Selected Constraint (Выбранное ограничение) имя ограничения, которое хотите удалить, и щелкнув на кнопке Delete.

  Модифицирование ограничения CHECK

Рис. 16.23. Модифицирование ограничения CHECK