SQL, Nhập dữ liệu bị lỗi cannot insert duplicate key in object

mình có 1 csdl

TINH_TP (MA_T_TP)
LANGGIENG (MA_T_TP, LG)

TINH_TP = tỉnh thành phố
 LANGGIENG = láng giềng 

MA_T_TP = mã tỉnh thành phố 
LG = láng giềng

khi nhập thông tin cho bản ghi
ví dụ An Giang = AG
AG có láng giềng là đồng tháp = DT và hậu giang = HG
nhập dữ liệu thì bị lỗi do trùng 2 AG, MA_T_TP là khóa

MA_T_TP        LG

   AG                DT
   AG                HG  (lỗi)

thì phải làm như thế nào ạ?

diagram

error

Trong láng giềng bỏ khóa đi hay để cả 2 là khóa

Trường nào mà là khoá chính nghĩa là trường đó không cho phép trùng dữ liệu, đó là cái căn bản của Cơ sở dữ liệu quan hệ mà. Muốn nhập trùng thì trường đó không thể là khoá chính.

vậy là phải làm khóa ngoài hả bạn

vậy là phải làm khóa ngoài hả bạn :slight_smile:

Vì bạn không đưa cái table của bạn lên cho mình xem dưới dạng hàng & cột như Excel nên mình không thể nói gì thêm.

Có cần tham chiếu đến khoá chính hay không? Nếu cần thì mới là khoá ngoại, còn không cần thì không sao. Túm lại, đọc lại lý thuyết cơ sở dữ liệu, đó là một trong những bài đầu tiên của nhập môn CSDL quan hệ mà, ví dụ về nó nhiều vô kể.

1 Like

MÌNH ĐÃ HỌC MÔN CSDL RỒI,
GIỜ QUA MÔN SQL SERVER
MÌNH ĐANG LÀM QUEN VỚI SQL
VỀ LÝ THUYẾT THÌ MÌNH NHỚ
NHƯNG LÀM VỚI SQL LẦN ĐẦU NÊN CHỨ HIỂU LẮM CÁC CÔNG CỤ
CHỖ DIAGRAM

MÌNH ĐANG SỬ DỤNG CÔNG CỤ TRỰC QUAN ĐỂ LÀM, CHỨ K PHẢI DÙNG LỆNH :slight_smile:

Phân tích bị sai rồi, cố gắng đi từng bước, em vẽ lược đồ ER ra đi

2 Likes

ý của Superthin không phải là việc học lại hay chưa học.

bạn xem lại mục đích tạo bảng, hiểu được thì mới dùng đúng.
trường hợp trên nếu là mình, chỉ đơn giản là tạo 1 bảng láng giếng có id, và name, name này refer bảng các tỉnh.

3 Likes

Ở đây mình thấy chỉ ở bảng TINH_TP thì MA_T_TP mới là khóa chính, còn tất cả bảng khác nó làm khóa ngoại. bạn để khóa chính hết không ổn lắm.

1 Like

Có lẽ chủ topic chưa thuộc bài cho nên không biết lúc nào thì một trường nên làm khoá chính, khi nào thì làm khoá ngoại nên mới ra nông nỗi như thế.

2 Likes

mình thắc mắc , thì mình mới lên hỏi, diễn đàn nào cũng tư tưởng như bạn thì đã k sinh ra 2 chữ thảo luận rồi, và sẽ k có cái trang nào gọi là diễn đàn :smile:
và mình xem địa chỉ k nhầm thì đây là diễn đàn " DẠY" " NHAU" " HỌC"

theo yêu cầu của đề bài thì k làm được như bạn nói, nhưng do mình k đăng hết toàn bộ đề như nào nên bạn hiểu nhầm là đúng :slight_smile:
csdl láng giếng thì có 1 trường mã tỉnh và láng giềng
dựa vào mã tỉnh để tìm láng giếng,
chứ k thể tạo id và name,
dùng name tham chiếu đến csdl tỉnh như bạn nói được

bảng miền mã tỉnh có thể là khóa chính nữa chứ

xin cam on, e làm được rồi à, tại lần đầu dùng sql, chỗ diagram kéo thả e k hiểu lắm, nên set khóa chính cả để kéo, lúc đầu kéo sai nó bọ lỗi :slight_smile:

1 Like

đúng rồi. nhưng mà không nên tách ra bảng riêng thế này mà gộp vào bảng TINH_TP luôn cũng được

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?