Làm thế nào để nhập dữ liệu cho bảng mà bị lỗi nhập trùng giá trị với khóa chính?
Ví dụ như mình gõ xong máy tính ra dòng chữ :"cannot perform cascading operation. It would result in a duplicate key in table"?
Trả lời (1)
-
Một trong các lý do chính cho việc dùng cơ sở dữ liệu quan hệ, chẳng hạn như Access, là để tránh dữ liệu trùng lặp mà điều đó có thể gây ra nhầm lẫn và rắc rối. Đôi khi, nếu bạn tạo cơ sở dữ liệu bằng cách thu thập dữ liệu từ các hệ thống hiện có, ví dụ như một bộ sổ làm việc Excel, bạn có thể có các dữ liệu trùng lặp cần được giải quyết trước khi bắt đầu sử dụng cơ sở dữ liệu đó. Hơn nữa, nếu không áp dụng một số biện pháp phòng ngừa trong thiết kế (hoặc điều đó là không thực tế vì một lý do nào đó), thì cơ sở dữ liệu đôi khi có thể thu nhận các giá trị trùng lặp, đặc biệt là khi nhiều người dùng nhập dữ liệu cùng một lúc.
Dữ liệu trùng lặp là gì?
Thuật ngữ dữ liệu trùng lặp không có nghĩa là có hai bản sao chính xác của cùng một dữ liệu. Thay vào đó, dữ liệu trùng lặp là dữ liệu hơi khác nhưng cùng tham chiếu đến một thứ, chẳng hạn như một vài dữ liệu khác. Nó có thể không sai – ví dụ như tên đầy đủ có và không có tên đệm.
Dữ liệu trùng lặp có thể xuất hiện ở nhiều mức độ khác nhau:
Hai hoặc nhiều bản ghi có thể chứa các trường trùng lặp. Hai bản ghi có thể được xem là trùng lặp ngay cả khi không phải tất cả các trường của các bản ghi đó có chứa các giá trị khớp nhau. Ví dụ, trong hình này, bạn sẽ thấy hai bản ghi cho Antonio Moreno Taquería.
Ngay cả khi mỗi bản ghi có ID khách hàng duy nhất (giá trị ở cột ngoài cùng bên trái), các giá trị trong các trường Tên, Địa chỉ và Thành phố vẫn khớp nhau. Có lẽ một bản ghi được tạo hai lần cho một khách hàng hoặc có thể có lý do chính đáng rằng hai khách hàng thuộc cùng một công ty. Bạn sẽ phải dùng kiến thức trong công việc của mình để xem lại các bản ghi đó xem chúng có phải là bản trùng lặp hay không.
Hai hoặc nhiều bảng có thể có chứa dữ liệu tương tự nhau. Ví dụ, bạn có thể thấy cả bảng Khách hàng và bảng Khách mua đều có chứa các bản ghi cho cùng một khách hàng.
Ngay cả khi các bảng đó có thể có cấu trúc khác nhau một chút nhưng cả hai bảng đều chứa cùng một loại thông tin — dữ liệu khách hàng — vì vậy, bạn cần cân nhắc tạo bảng mới bằng cách kết hợp chúng.
Hai hoặc nhiều cơ sở dữ liệu có thể chứa dữ liệu tương tự nhau. Nếu bạn thấy hai hoặc nhiều cơ sở dữ liệu có chứa dữ liệu tương tự nhau hoặc bạn thừa kế một cơ sở dữ liệu có nội dung chồng chéo với cơ sở dữ liệu hiện thời của mình, bạn cần so sánh dữ liệu và cấu trúc của các cơ sở dữ liệu đó rồi thực hiện những bước cần thiết để hợp nhất chúng.
So sánh cơ sở dữ liệu theo cách thủ công, ngay cả đối với cơ sở dữ liệu nhỏ, không phải là một việc dễ dàng. Nếu bạn cần trợ giúp để so sánh, một vài nhà cung cấp bên thứ ba có bán các công cụ để so sánh nội dung và cấu trúc của cơ sở dữ liệu Access.
QUAN TRỌNG: Nếu bạn thực hiện các bước để loại bỏ dữ liệu trùng lặp khỏi các bảng và bạn vẫn thấy dữ liệu trùng lặp trong một biểu mẫu hoặc báo cáo, đó có thể là do thiết kế biểu mẫu hoặc báo cáo không chính xác. Hãy bảo đảm các bảng và truy vấn ẩn dưới được nối đúng cách và các phần biểu mẫu hoặc báo cáo không bao gồm nhiều điều khiển được kết nối với cùng một nguồn điều khiển. Để biết thêm thông tin về thiết kế báo cáo, hãy xem bài viết Giới thiệu về báo cáo.
Những gì không phải là dữ liệu trùng lặp
Đôi khi hai hoặc nhiều bản ghi có bộ giá trị chung nhưng chúng sẽ không tham chiếu đến cùng một thứ. Ví dụ, nhiều khách hàng có thể có tên đầy đủ là John Smith, nhưng các giá trị đó không phải là giá trị trùng lặp vì chúng tham chiếu đến những người khác nhau. Khi điều đó xảy ra, bạn sẽ không có nguy cơ gặp dữ liệu trùng lặp với điều kiện là các trường khác trong cơ sở dữ liệu của bạn (chẳng hạn như trường ID, tên người dùng, địa chỉ hoặc mã bưu chính) có chứa đủ thông tin duy nhất để tránh cho các bản ghi bị coi là trùng lặp.
Dữ liệu do truy vấn trả về có thể có vẻ như chứa các bản ghi trùng lặp nếu truy vấn đó không bao gồm các trường nhận dạng duy nhất từng bản ghi. Ví dụ, bảng này hiện dữ liệu do truy vấn trả về:
Một vài hàng trong kết quả truy vấn có vẻ như trùng lặp. Tuy nhiên, cũng truy vấn đó kèm theo trường khóa chính cho biết rằng mỗi bản ghi thực sự là duy nhất:
Để tránh sự nhầm lẫn này, khi tạo truy vấn, bạn hãy đưa vào đó các trường nhận dạng duy nhất mỗi bản ghi. Trường khóa chính có thể thực hiện chức năng này nhưng bạn cũng có thể dùng kết hợp các trường khác thay vào đó. Ví dụ, bạn có một tên liên hệ thường gặp lặp lại nhiều lần và một tên thành phố lặp lại nhiều lần, nhưng nếu bạn đưa vào đó số điện thoại và địa chỉ, thì tổ hợp dữ liệu đó có thể đủ để khiến cho mỗi bản ghi trở thành duy nhất.
Giải quyết và ngăn chặn dữ liệu trùng lặp
Để giải quyết dữ liệu trùng lặp, hãy sửa hoặc xóa bỏ dữ liệu đó.
Bạn hãy sửa bản ghi trùng lặp nếu nó thực sự biểu thị một thực thể riêng biệt – ví dụ, một khách hàng không có bản ghi nào khác – và trùng lặp với một bản ghi nào đó khác do nhầm lẫn nào đó, có lẽ do nhập sai.
Bạn hãy xóa bỏ bản ghi trùng lặp nếu nó không biểu thị một thực thể nào khác; tức là có bản ghi khác cho cùng một thực thể mà bạn muốn dùng.
Trong một số trường hợp, bạn sẽ xóa bỏ một mục trùng lặp và sửa mục còn lại bởi vì cả hai bản ghi đều không hoàn toàn chính xác. Nếu bạn muốn xóa bỏ từ một bảng liên quan đến các bảng khác, bạn có thể cần bật xóa xếp tầng cho một số quan hệ.
Để giúp ngăn chặn dữ liệu trùng lặp, hãy bạn hãy cân nhắc những điều sau đây:
Hãy bảo đảm mỗi bảng của bạn có một khóa chính
Nếu có nhiều trường không phải là một phần của khóa chính nhưng phải chứa các giá trị duy nhất, hãy tạo chỉ mục duy nhất cho các trường đó
Hãy cân nhắc tạo biểu mẫu cho việc nhập dữ liệu và dùng các hộp danh sách trên các biểu mẫu đó để giúp tìm các giá trị hiện có dễ dàng hơn
Đầu Trang
Trước khi bạn bắt đầu
Trước khi bạn bắt đầu xóa bỏ dữ liệu trùng lặp, hãy thực hiện các bước sau đây:
Hãy đảm bảo tệp cơ sở dữ liệu không ở dạng chỉ đọc.
Nếu người khác dùng cơ sở dữ liệu của bạn và bạn muốn giảm thiểu sự gián đoạn dịch vụ của họ, hãy yêu cầu họ đóng các đối tượng mà bạn muốn thao tác. Nếu không, có thể xảy ra xung đột dữ liệu.
Nếu có thể chấp nhận việc cơ sở dữ liệu không sẵn dùng trong khi bạn làm việc với chúng, hãy mở cơ sở dữ liệu trong chế độ riêng. Để làm như vậy, hãy bấm vào tab Tệp rồi bấm Mở. Trong hộp thoại, hãy duyệt và chọn cơ sở dữ liệu, bấm vào mũi tên bên cạnh nút Mở, rồi bấm Mở Riêng.
bởi bala bala 22/11/2021Like (0) Báo cáo sai phạm
Nếu bạn hỏi, bạn chỉ thu về một câu trả lời.
Nhưng khi bạn suy nghĩ trả lời, bạn sẽ thu về gấp bội!
Lưu ý: Các trường hợp cố tình spam câu trả lời hoặc bị báo xấu trên 5 lần sẽ bị khóa tài khoản
Các câu hỏi mới
-
a. Tạo các dòng
b. Tạo cấu trúc bảng
c. Tạo các cột
d. Tạo các cột và các dòng
10/03/2023 | 2 Trả lời
-
Bạn Bình hỏi, có phải khi thực hiện thao tác xoá bảng, chi các thông tin khai báo khi tạo bảng bị xoá, còn các bộ dừ liệu vẫn còn nguyên vẹn không? Em sẽ trả lời bạn Bình như thể nào?
18/04/2023 | 1 Trả lời