Chúng tôi muốn ngăn sao chép bản ghi trong cơ sở dữ liệu truy cập MS của chúng tôi bằng cách sử dụng chỉ mục duy nhất nhiều cột. Vì cách dữ liệu được gửi (qua mạng), đôi khi dữ liệu trùng lặp được nhận. Nguồn dữ liệu không gửi một ID duy nhất, do đó, tùy chọn đơn giản nhất là ngăn các bản ghi trùng lặp được chèn vào.Chúng ta có thể tạo các chỉ mục duy nhất đa số trên cơ sở dữ liệu truy cập MS không?
Theo Unique Index Design Guidelines:
Với chỉ số độc đáo multicolumn, các chỉ số đảm bảo rằng mỗi sự kết hợp các giá trị trong khóa index là duy nhất. Ví dụ: Ví dụ: nếu chỉ mục duy nhất là được tạo trên kết hợp các cột LastName, FirstName và MiddleName, không có hai hàng trong bảng có thể có sự kết hợp các giá trị tương tự cho các cột này.
Điều này là dành cho SQL 2005 tuy nhiên, vì vậy tôi không chắc chắn có thể sử dụng truy cập MS.
Tôi đoán một sự thay thế có lẽ là để sử dụng truy vấn (pseudo code):
insert into foobar (a, b, c) values ('x', 'y', 'z')
where (a <> 'x') and (b <> 'y') and (c <> 'z')
... nhưng tôi cảm thấy như một chỉ số sẽ tốt hơn.
Tại sao không đưa ra các bảng trong câu hỏi một chỉ số duy nhất? Tôi không thấy những gì này đã làm cụ thể với C + +, BTW. –
Vâng, tôi không chắc nó có liên quan không. Chúng tôi đã có một chỉ mục duy nhất; nhưng nguồn dữ liệu không cung cấp dữ liệu này. Tôi sẽ cập nhật câu hỏi của mình. –
Chỉ mục duy nhất của bạn cần phải có trên dữ liệu thực tế. –