首頁  >  問答  >  主體

使用多個外鍵時設定主鍵列名稱

create table teach_enroll(

instructor_id varchar(64) not null,
class_id varchar(64)not null,
course_id varchar(64)not null,
student_id varchar(64) not null,
foreign key (instructor_id) references instructor(id),
foreign key (class_id) references class(id),
foreign key(course_id)references course_type(id),
foreign key (student_id)references student(id),

CONSTRAINT ENROLL_ID primary key (class_id,course_id,student_id) 

);

select * from teach_enroll;

我試圖將我的主鍵列命名為ENROLL_ID,但當我查詢select * fromteacher_enroll 時,約束關鍵字沒有幫助,我在單獨的列中只得到了coach_id、class_id、course_id、student_id,但我看不到主鍵列: )

P粉099145710P粉099145710405 天前440

全部回覆(1)我來回復

  • P粉015402013

    P粉0154020132023-09-12 00:18:45

    您的主鍵由三 (3) 列組成,而不是單一列,因為這是您定義它的方式。這意味著這三列的組合對於表中的每一行都必須是唯一的,儘管定義為鍵的任何給定列可能不是唯一的。您不能將單一名稱套用至三列。

    這表示您的外鍵約束將命名所有 3 列。假設兩個表中的列名相同,則:

    CONSTRAINT FOREIGN KEY (class_id,course_id,student_id)
        REFERENCES teach_enroll(class_id,course_id,student_id)
    

    回覆
    0
  • 取消回覆