Thursday, December 29, 2016

Add or change a table’s primary key in Access

Add or change a table's primary key in Access

A primary key is a field or set of fields with values that are unique throughout a table. Values of the key can be used to refer to entire records, because each record has a different value for the key. Each table can only have one primary key.

To set a table's primary key, open the table in Design view. Select the field (or fields) that you want to use, and then on the ribbon, click Primary Key.

Note:  This article is intended for use only with desktop databases. Access automatically manages primary keys for new tables in Access web apps and web databases. Although it is possible to override these automated primary keys, we don't recommend that you do.

In this article

Overview of primary key in Access

Add an AutoNumber primary key in Access

Set the primary key using fields you already have in Access

Remove the primary key in Access

Change the primary key in Access

Overview of primary key in Access

Access uses primary key fields for several things:

  • To read data from several tables and combine it in a meaningful way. You can include the primary key fields in other tables to refer back to the table that is the source of the primary key. In those other tables, the fields are called foreign keys. For example, a Customer ID field in the Customers table might also appear in the Orders table. In the Customers table, it is the primary key. In the Orders table it is called a foreign key. A foreign key, simply stated, is another table's primary key. For more information, see Database design basics.

Primary key and foreign key shown between two Access datasheets

1. Primary key

2. Foreign key

If you are moving existing data into a database, you may already have a field that you can use as the primary key. Often, a unique identification number, such as an ID number or a serial number or code, serves as a primary key in a table. For example, you might have a Customers table where each customer has a unique customer ID number. The customer ID field is the primary key.

Access automatically creates an index for the primary key, which helps speed up queries and other operations. Access also ensures that every record has a value in the primary key field, and that it is always unique.

When you create a new table in Datasheet view, Access automatically creates a primary key for you and assigns it a field name of "ID" and the AutoNumber data type. The field is hidden by default in Datasheet View, but you can see the field if you switch to Design View.

What makes a good primary key?

A good candidate for a primary key has several characteristics:

  • It uniquely identifies each row

  • It is never empty or null — it always contains a value

  • The values it contains rarely (ideally, never) change

If you can't identify a good key, create an AutoNumber field to use as the key. An AutoNumber field automatically generates a value for itself when each record is first saved. Thus, an AutoNumber field meets all three characteristics of a good primary key. For more information on adding an AutoNumber, see the section Add an AutoNumber primary key.

AutoNumber primary key labeled as ID in Access table Design view

An AutoNumber field makes a good primary key.

Examples of poor primary keys

Any field that is missing one or more of the characteristics of a good candidate key is a poor choice for a primary key. Here are a few examples of fields that would make poor primary keys for a Contacts table, along with reasons why they would be poor choices.

Poor primary key

Reason

Personal name

Might not be reliably unique, and may change

Phone number

Likely to change.

E-mail address

Likely to change.

Zip code

More than one person may share a ZIP code

Combinations of facts and numbers

The fact portion might change, creating a maintenance burden. Could lead to confusion if the fact portion is repeated as a separate field. For example, combining the city and an incremented number (e.g., NEWYORK0579) would be a poor choice if the city is also stored as a field.

Social Security Numbers

  • Private information and not allowed in government departments and some organizations.

  • Some people don't have a SSN

  • An individual may have more than one in a lifetime

Composite keys: using multiple fields in combination as a primary key

In some cases, you want to use two or more fields in a table as the primary key. For example, an Order Details table that stores line items for orders might use two fields in its primary key: Order ID and Product ID. A key that has more than one field is called a composite key. You can create a composite foreign key by using a data-definition query to create a multiple-field constraint. For more information, see the topic Create or modify tables or indexes by using a data-definition query.

Add an AutoNumber primary key in Access

Note: When you create a new table in Datasheet view, Access automatically creates a primary key for you and assigns it the AutoNumber data type.

  1. Open the desktop database that you want to modify.

  2. In the Navigation Pane, right click the table to which you want to add the primary key and, on the shortcut menu, click Design View.

    Tip: If you don't see the Navigation Pane, press F11 to display it.

  3. Locate the first available empty row in the table design grid.

  4. In the Field Name field, type a name, such as CustomerID.

  5. In the Data Type field, click the drop-down arrow and click AutoNumber.

  6. Under Field Properties, in New Values, click Increment to use incremental numeric values for the primary key, or click Random to use random numbers.

Set the primary key using fields you already have in Access

For a primary key to work well, the field must uniquely identify each row, never contain an empty or null value, and rarely (ideally, never) change. To set the primary key:

  1. Open the database that you want to modify.

  2. In the Navigation Pane, right click the table in which you want to set the primary key and, on the shortcut menu, click Design View.

    Tip: If you don't see the Navigation Pane, press F11 to display it.

  3. Select the field or fields that you want to use as the primary key.

    To select one field, click the row selector for the field you want.

    To select more than one field, hold down CTRL and then click the row selector for each field.

  4. On the Design tab, in the Tools group, click Primary Key.

    A key indicator is added to the left of the field or fields that you specify as the primary key.

Remove the primary key in Access

When you remove the primary key, the field or fields that previously served as primary key will no longer provide the primary means of identifying a record.

Removing the primary key doesn't delete the fields from your table, but it does remove the index that was created for the primary key.

  1. Before you can remove a primary key, you must make sure that it doesn't participate in any table relationships. If you try to remove a primary key that is part of one or more relationships, Access warns you that you must delete the relationships first.

    To delete a table relationship, complete the following steps:   

    1. If the tables that participate in the table relationship are open, close them. You cannot delete a table relationship between open tables.

    2. On the Database Tools tab, in the Relationships group, click Relationships.

    3. If the tables that participate in the table relationship are not visible, on the Design tab, in the Relationships group, click Show Table.

    4. Select the tables to add in the Show Table dialog box, and then click Add, and click Close.

    5. Click the table relationship line for the table relationship that you want to delete (the line becomes bold when it is selected), and then press the DELETE key.

    6. On the Design tab, in the Relationships group, click Close.

  2. After you delete the relationships, in the Navigation Pane, right click the table from which you want to remove the primary key and then click Design View.

    Tip: If you don't see the Navigation Pane, press F11 to display it.

  3. Click the row selector for the current primary key.

    If the primary key consists of a single field, click the row selector for that field.

    If the primary key consists of multiple fields, click the row selector for any field in the primary key.

  4. On the Design tab, in the Tools group, click Primary Key.

    The key indicator is removed from the field or fields that you previously specified as the primary key.

Note: When you save a new table without setting a primary key, Access prompts you to create one. If you choose Yes, Access creates an ID field that uses the AutoNumber data type to provide a unique value for each record. If your table already includes an AutoNumber field, Access uses that field as the primary key.

Change the primary key in Access

If you decide to change a table's primary key, you can do so by following these steps:

  1. Remove the existing primary key using the instructions in the section Remove the primary key.

  2. Set the primary key using the instructions in the section Set the primary key.

No comments:

Post a Comment