Первинний ключ – це поле або набір полів зі значеннями, унікальними в межах певної таблиці. За допомогою значень ключа можна посилатися на окремі записи, адже значення ключа кожного запису відрізняється. Кожна таблиця може мати лише один первинний ключ. Access можете автоматично створити поле первинного ключа під час створення таблиці або вказати поля, які потрібно використовувати як первинний ключ. Дізнайтеся, як і для чого використовують первинні ключі, з цієї сатті.
Щоб установити первинний ключ таблиці, відкрийте таблицю в режимі конструктора. Виберіть поле (або поля), які ви бажаєте використовувати, а потім на стрічці виберіть Первинний ключ.
Примітка.: Цю статтю призначено лише для настільних баз даних Access. Access автоматично керує первинними ключами для нових таблиць у Access веб-програмах і веб-базах даних. Хоча ці автоматичні первинні ключі можна перевизначити, ми не радимо цього робити.
У цій статті
Огляд первинних ключів у Access
Access використовує поля первинного ключа, щоб швидко зв'язувати дані з кількох таблиць і об'єднувати їх змістовно. Ви можете включити поля первинного ключа до інших таблиць, щоб повернутися до таблиці, яка є джерелом первинного ключа. У цих інших таблицях поля називаються зовнішніми ключами. Наприклад, поле "Ідентифікатор клієнта" в таблиці "Клієнти" також може відображатися в таблиці "Замовлення". У таблиці Customers це первинний ключ. У таблиці Orders вона називається зовнішнім ключем. Зовнішній ключ , просто вказано, є первинним ключем іншої таблиці. Докладні відомості див. в статті Основи розробки баз даних.
1. Первинний ключ
2. Зовнішній ключ
Якщо ви переміщуєте наявні дані до бази даних, можливо, вона вже містить поле, яке можна використовувати як первинний ключ. Часто унікальний ідентифікаційний номер, такий як ідентифікатор, серійний номер або код, слугує первинним ключем у таблиці. Наприклад, є таблиця «Клієнти», у якій кожний клієнт має унікальний ідентифікатор. Поле «Ідентифікатор клієнта» – це первинний ключ.
Access автоматично створює індекс для первинного ключа, що допомагає прискорити роботу запитів та інших операцій. Access також гарантує, що кожен запис має значення в полі первинного ключа, і що він завжди унікальний.
Коли ви створюєте нову таблицю у вікні табличного подання даних, Access автоматично створює первинний ключ і призначає ній ім'я поля "Ідентифікатор" і тип даних "Лічильник".
Що таке правильний первинний ключ?
Поле, найбільш відповідне для первинного ключа, має кілька характеристик.
-
Воно однозначно ідентифікує кожний рядок
-
Воно ніколи не буває пусте або нульове – завжди містить значення.
-
Значення поля рідко (або ніколи) не змінюється
Якщо не вдається визначити потрібний ключ, створіть поле автонумерації, яке використовуватимете як ключ. Поле "Автонумерація" автоматично створює значення для себе під час першого збереження кожного запису. Таким чином, поле "Автонумерація" відповідає всім трьом характеристикам хорошого первинного ключа. Докладні відомості про додавання поля "Лічильник" див. в статті Додавання поля "Автонумерація" як первинного ключа.
Поле «Автонумерація» – це правильний первинний ключ.
Приклади неправильних первинних ключів
Будь-яке поле, якому бракує однієї або кількох характеристик правильного первинного ключа, – поганий вибір для первинного ключа. Ось кілька прикладів, які небажано використовувати як первинні ключі для таблиці «Контакти» з поясненням причин.
|
Неправильний первинний ключ |
Причина |
|---|---|
|
Особисте ім’я |
Може бути недостатньо унікальним і може змінюватися. |
|
Телефон |
Може змінюватися. |
|
Адреса електронної пошти |
Може змінюватися. |
|
Поштовий індекс |
Кілька осіб можуть мати один і той самий індекс. |
|
Поєднання фактів і чисел |
Факти можуть змінюватися, що робить обслуговування обтяжливим. Це може призвести до непорозуміння, якщо факти дублюються в іншому полі. Наприклад, комбінація з назви міста та збільшуваного числа (наприклад, NEWYORK0579) може бути невдалим вибором, якщо назва міста також зберігається як поле. |
|
Номери соціального страхування |
|
Складний ключ: використання комбінації кількох полів як первинного ключа
Іноді як первинний ключ таблиці можна встановити два або більше полів. Наприклад, у таблиці "Відомості про замовлення", де зберігаються записи про замовлення, первинним ключем можуть слугувати два поля: "Ідентифікатор замовлення" й "Ідентифікатор товару". Якщо первинний ключ містить більше одного поля, він має назву складеного ключа.
Установлення первинного ключа за допомогою полів, наявних у Access
Якщо є таблиця, у якій кожний запис має унікальний номер ідентифікатора (наприклад, ідентифікатор, серійний номер або код), таке поле можна використати як первинний ключ. Найкращий первинний ключ – це поле, яке унікально ідентифікує кожен рядок, не містить пустих значень і рідко (або ніколи) змінюється.
-
Відкрийте базу даних, яку потрібно змінити.
-
В області переходів клацніть правою кнопкою таблицю, у якій потрібно встановити первинний ключ, і в контекстному меню виберіть пункт Конструктор.
Порада.: Якщо область переходів не відображається, натисніть клавішу F11, щоб відкрити її.
-
Виберіть поле або поля, які потрібно використати як первинний ключ.
Для вибору одного поля натисніть маркер виділення рядка для потрібного поля.
Щоб створити складений ключ із кількох полів, клацніть маркери виділення рядка для кожного поля, утримуючи натиснутою клавішу Ctrl.
-
На вкладці Конструктор таблиць у групі Знаряддя натисніть кнопку Первинний ключ.
Піктограма ключа додається ліворуч від поля або полів, вибраних як первинний ключ.
Видалення первинного ключа в Access
У разі видалення первинного ключа поле або поля, які до цього були первинним ключем, більше не є основним засобом ідентифікації запису. Проте видалення первинного ключа не видаляє поля або полів з таблиці. Але з полів видаляється значення первинного ключа.
Видалення первинного ключа не призводить до видалення полів із таблиці, але індекс, створений для первинного ключа, буде видалено.
-
Перш ніж Вилучення первинний ключ, переконайтеся, що його не задіяно у зв’язках між таблицями. Якщо спробувати видалити первинний ключ, який входить до одного або кількох зв'язків, Access попереджає, що спочатку слід видалити зв'язки.Щоб видалити зв’язок між таблицями, виконайте такі дії:
-
Якщо відкрито таблиці, які є частинами зв’язку, закрийте їх. Не можна видаляти зв’язок між відкритими таблицями.
-
На вкладці Знаряддя бази даних у групі Зв’язки натисніть кнопку Зв’язки.
-
Натисніть кнопку Додати таблиці.
-
Виберіть зв’язок між таблицями, який слід видалити (лінія стає жирною, якщо її вибрано у разі вибору), і натисніть клавішу Delete.
-
На вкладці Конструктор зв'язків у групі Зв'язки натисніть кнопку Закрити.
-
-
Після видалення зв’язків в області переходів клацніть правою кнопкою таблицю, у якій потрібно видалити первинний ключ, а потім виберіть пункт Режим конструктора.
Порада.: Якщо область переходів не відображається, натисніть клавішу F11, щоб відкрити її.
-
Клацніть маркер виділення рядка для поточного первинного ключа.
Якщо первинний ключ складається з одного поля, клацніть маркер виділення рядка для цього поля.
Якщо первинний ключ складається з кількох полів, клацніть маркер виділення рядка для будь-якого поля первинного ключа.
-
На вкладці Конструктор таблиць у групі Знаряддя натисніть кнопку Первинний ключ.
Піктограма ключа видаляється з поля або полів, які було попередньо вибрано як первинний ключ.
Примітка.: Коли ви зберігаєте нову таблицю, не встановлюючи первинний ключ, Access пропонує створити її. Якщо вибрати так, Access створить поле ідентифікатора, яке використовує тип даних "Лічильник" для надання унікального значення для кожного запису. Якщо таблиця вже містить поле "Лічильник", Access використовує це поле як первинний ключ.
Змінення первинного ключа в Access
Ось як змінити первинний ключ таблиці:
-
Вилучіть наявний первинний ключ, як описано в розділі Вилучення первинного ключа.
-
Установіть первинний ключ, як описано в розділі Установлення первинного ключа за допомогою наявних в Access полів.
Додаткові відомості
Докладні відомості про розробку баз даних і вибір відповідного первинного ключа див. в таких статтях: