MySQL外键实现

MySQL外键实现,mysql,Mysql,我是MySQL新手,我有两个名为Person和Patient的表。我试图在患者中创建一个简单的外键关系,并亲自创建主键。我在网上看到的所有示例都遵循我正在使用的相同结构,但我不断出错。非常感谢您的帮助 create table PERSON( PatientID smallint UNSIGNED NOT NULL, Firstname varchar (25), Lastname varchar (25), CONSTRAINT PatientID_pk PRI

我是MySQL新手,我有两个名为Person和Patient的表。我试图在患者中创建一个简单的外键关系,并亲自创建主键。我在网上看到的所有示例都遵循我正在使用的相同结构,但我不断出错。非常感谢您的帮助

create table PERSON(
    PatientID smallint UNSIGNED NOT NULL,
    Firstname varchar (25),
    Lastname varchar (25),
    CONSTRAINT PatientID_pk PRIMARY KEY (PatientID)
);
这是我试图添加外键的表:

CREATE TABLE PATIENT(
    PatientID smallint UNSIGNED NOT NULL, 
    DoctorID smallint UNSIGNED NOT NULL,
    FOREIGN KEY (PatientID) REFERENCES PERSON(PatientID);

我想这就是你想要的

create table PERSON
(
  PersonID smallint UNSIGNED NOT NULL AUTO_INCREMENT,
  Firstname varchar (25),
  Lastname varchar (25),
  CONSTRAINT PersonID_pk PRIMARY KEY (PersonID)
);

CREATE TABLE PATIENT
(
  PatientID smallint UNSIGNED NOT NULL, 
  DoctorID smallint UNSIGNED NOT NULL,
  FOREIGN KEY (PatientID) REFERENCES PERSON(PersonID),
  FOREIGN KEY (DoctorID) REFERENCES PERSON(PersonID),
  UNIQUE KEY unique_key (PatientID, DoctorID)
);

我想这就是你想要的

create table PERSON
(
  PersonID smallint UNSIGNED NOT NULL AUTO_INCREMENT,
  Firstname varchar (25),
  Lastname varchar (25),
  CONSTRAINT PersonID_pk PRIMARY KEY (PersonID)
);

CREATE TABLE PATIENT
(
  PatientID smallint UNSIGNED NOT NULL, 
  DoctorID smallint UNSIGNED NOT NULL,
  FOREIGN KEY (PatientID) REFERENCES PERSON(PersonID),
  FOREIGN KEY (DoctorID) REFERENCES PERSON(PersonID),
  UNIQUE KEY unique_key (PatientID, DoctorID)
);

结尾缺少括号。。。人(PatientID);-->人(病人);;啊!!谢谢你,大卫,我没注意到,结尾处少了一个括号。。。人(PatientID);-->人(病人);;啊!!谢谢你,大卫,我没有足够注意。@coeus:我只是在主键上添加了一个自动递增值。你也可以用它。@coeus:我刚刚给主键添加了一个自动递增值。你也可以用这个。