Thêm hoặc thay đổi primary key vào bảng trong Access

3/18/2020


Khóa chính - primary keys là một trường hoặc tập hợp trường chứa các giá trị duy nhất xuyên suốt một bảng. Bạn có thể sử dụng các giá trị của khóa để tham chiếu tới toàn bộ các bản ghi, do mỗi bản ghi lại có một giá trị khóa khác nhau. Mỗi bảng chỉ có thể có một khóa chính (primary keys). Access có thể tự động tạo trường khóa chính cho bạn khi bạn tạo bảng hoặc bạn có thể chỉ định trường mình muốn sử dụng làm khóa chính. Bài viết này sẽ giải thích cách thức và lý do nên sử dụng khóa chính.

Tổng quan về primary keys trong Access

Access sử dụng các khóa chính - primary keys để nhanh chóng liên kết dữ liệu từ nhiều bảng và kết hợp chúng một cách có ý nghĩa. Bạn có thể thêm các trường khóa chính trong các bảng khác để tham chiếu trở lại bảng gốc là nguồn của khóa chính. Trong các bảng khác đó, các trường được gọi là khóa ngoại. Ví dụ: trường ID trong bảng Customers cũng có thể xuất hiện trong bảng Orders. Trong bảng Customers, ID là khóa chính. Trong bảng Orders, ID được gọi là khóa ngoại - foreign key. Khóa ngoại - foreign key, nói một cách dễ hiểu là khóa chính của một bảng khác.

1. Primary key

2. Foreign key

Nếu bạn đang chuyển dữ liệu hiện có vào một cơ sở dữ liệu, bạn có thể đã có sẵn một trường mà bạn có thể dùng làm khóa chính. Thông thường, khóa chính thường là số ID hoặc một số sê-ri hoặc mã. Ví dụ, bảng Customers, trường ID khách hàng là khóa chính.

Access tự động tạo một chỉ mục cho khóa chính nhằm giúp tăng tốc truy vấn và các thao tác khác. Access cũng đảm bảo rằng mọi bản ghi đều có một giá trị trong trường khóa chính và giá trị đó luôn duy nhất.

Khi bạn tạo bảng mới trong dạng xem Biểu dữ liệu, Access sẽ tự động tạo khóa chính cho bạn và gán tên trường của "ID", cũng như loại dữ liệu AutoNumber.

Thế nào là một khóa chính - primary key tốt?

Thông thường khóa chính có các đặc điểm sau:

  • Nhận dạng cho mỗi hàng
  • Không bị bỏ trống và luôn có giá trị
  • Giá trị khóa chính hiếm hoặc không thay đổi

Nếu bạn không thể xác định được một khóa chính, hãy tạo một trường AutoNumber để dùng làm khóa. Trường AutoNumber sẽ tự tạo một giá trị cho mình mỗi khi có bản ghi được lưu lần đầu. Vì vậy, trường AutoNumber sẽ đáp ứng cả ba đặc điểm của một khóa chính tốt. Để biết thêm thông tin về cách thêm trường Số Tự động, hãy xem phần 

Ví dụ các primary keys kém hiệu quả

Bất kỳ trường nào thiếu một trong những đặc điểm của một khóa chính tốt sẽ bị coi là khóa chính kém. Dưới đây là một vài ví dụ về các trường bị xem như là các khóa chính kém đối với bảng Contacts kèm theo phần giải thích lý do vì sao.

 

Các khóa chính kém

 

Lý do

Tên cá nhân

 

Có thể bị trùng tên à không là duy nhất

Số điện thoại

 

Có thể thay đổi

E-mail address

 

Có thể thay đổi

Zip code

 

Nhiều người có thể sở hữu cùng ZIP code

Tổ hợp dữ liệu và con số

 

Phần dữ liệu có thể thay đổi, gây khó khăn cho việc quản lý. Có thể gây nhầm lẫn nếu phần dữ liệu được dùng lặp lại làm một trường riêng. Ví dụ, kết hợp thành phố và một chữ số tăng dần (ví dụ, NEWYORK0579) sẽ là một lựa chọn tồi nếu thành phố đó cũng được lưu làm một trường.

Số An sinh Xã hội (SSN)

 

  • Thông tin riêng tư và không được phép trong các cơ quan chính phủ và một số tổ chức.
  • Một vài người không có SSN
  • Một cá nhân có thể có nhiều số SSN

Khóa tổ hợp: có nhiều hơn 1 khóa chính trong một bảng

Trong một số trường hợp, bạn sẽ muốn sử dụng hai trường trở lên làm khóa chính trong một bảng. Ví dụ: bảng Chi tiết Đơn hàng lưu trữ các mục dòng cho đơn hàng có thể sử dụng hai trường làm khóa chính: ID Đơn hàng và ID Sản phẩm. Một khóa chứa nhiều trường được gọi là khóa tổng hợp.

Thêm khóa chính (primary key) vào bảng

Tạo khóa chính để liên kết dữ liệu giữa nhiều bảng.

  1. Tại khu vực điều hướng (nếu không thấy nhấn F11), bấm chuột phải vào bảng, rồi chọn Design View.
  2. Chọn trường hoặc giữ Ctrl để chọn 2 trường trở lên bạn muốn dùng làm khóa chính
    • Khi có 2 trường được chọn khóa chính được gọi là khóa tổng hợp
  3. Chọn Design > Primary Key.

Gỡ bỏ khóa chính - primary key trong Access

Khi bạn loại bỏ khóa chính, các trường trước đó được dùng làm khóa chính sẽ không cung cấp các phương tiện chính để nhận dạng một bản ghi nữa.

Loại bỏ khóa chính không xóa hẳn các trường khỏi bảng của bạn mà chỉ loại bỏ chỉ mục được tạo cho khóa chính đó.

  1. Trước khi có thể loại bỏ khóa chính, bạn phải chắc chắn rằng khóa đó không tham gia vào bất kỳ mối quan hệ bảng nào. Nếu bạn cố loại bỏ khóa chính vốn là một phần của một hay nhiều quan hệ - relationship, Access sẽ cảnh báo rằng trước hết, bạn phải xóa relationship đó.

    Để xóa mối quan hệ bảng, hãy hoàn thành các bước sau:   
    1. Nếu các bảng tham gia vào relationship đang mở, hãy đóng các bảng đó. Bạn không thể xóa relationship khi các bảng đang mở.
    2. Trên tab Database Tools, trong nhóm Relationships, bấm vào Mối quan hệ.

    1. Nếu các bảng tham gia vào relationship không hiển thị, trên tab Design, trong nhóm Relationships, bấm vào Show Table.
    2. Chọn các bảng bạn định thêm trong hộp thoại Show Table rồi bấm vào Add và bấm vào Close.

    1. Bấm vào dòng relationship mà bạn muốn xóa (dòng này sẽ được in đậm khi được chọn) rồi nhấn phím DELETE.
    2. Trên tab Design, trong nhóm Relationships, bấm vào Close.
  1. Sau khi bạn xóa mối quan hệ, tại khung điều hướng, bấm chuột phải vào bảng mà bạn muốn loại bỏ khóa chính rồi bấm Design View.

Mẹo: Nếu bạn không nhìn thấy khung điều hướng, nhấn F11 để hiển thị nó.

  1. Bấm vào bộ chọn hàng cho khóa chính hiện tại.

Nếu khóa chính bao gồm một trường đơn lẻ, hãy bấm vào bộ chọn hàng dành cho trường đó.

Nếu khóa chính bao gồm nhiều trường, hãy bấm vào bộ chọn hàng dành cho trường bất kỳ trong khóa chính.

  1. Trên tab Design, trong nhóm Tools, hãy bấm Primary Key.

Các khóa được chỉ định bị xóa khỏi các trường mà trước đó bạn đã chọn làm khóa chính.

Lưu ý: Khi bạn lưu một bảng mới mà không đặt khóa chính, Access sẽ nhắc bạn tạo một khóa. Nếu bạn chọn , Access sẽ tạo một trường ID sử dụng kiểu dữ liệu AutoNumber để cung cấp một giá trị duy nhất cho mỗi bản ghi. Nếu bảng của bạn đã có sẵn một trường AutoNumber rồi, Access sẽ dùng trường đó làm khóa chính.

Thay đổi khóa chính trong Access

Nếu bạn quyết định thay đổi khóa chính của một bảng, bạn có thể thực hiện theo các bước sau:

  1. Loại bỏ khóa chính hiện tại theo các hướng dẫn trong phần Loại bỏ khóa chính.
  2. Đặt khóa chính theo các hướng dẫn trong mục Thêm khóa chính.