将数据插入到具有一个主键的表中,另一个外键使用查询

时间:2017-06-07 08:10:08

标签: mysql database insert foreign-keys primary-key

我想知道如何将新的新数据插入Doctor表中,其中有一个主键是另一个外键。

例如,我已经为person表添加了如下值,请告诉我它是如何在Doctor Table上完成的。

create table Doctor(
    DoctorID char(6) Primary Key,
    MedicalDegrees varchar(20),
    PersonID int not null REFERENCES Person (PersonID),
    check(DoctorID like '[a-z][a-z][0-9][0-9][0-9][0-9]'));
create table Person(
    PersonID int Primary Key,
    FirstName varchar(15),
    LastName varchar(15),
    StreetAddress varchar(25),
    City varchar(15),
    State varchar(2),
    Zip varchar(5),
    PhoneNumber varchar(10),
    SSN varchar(9) UNIQUE);
insert into person values('1', 'John', 'Smith', '2343 sdf', 'Tacoma', 'WA', 98001, 5268964563, 564657415)

非常感谢提前

2 个答案:

答案 0 :(得分:0)

如何将数据添加到Doctor表中是什么意思?
就像您将记录添加到人员表一样,您可以将记录添加到Doctor表中 因为Doctor表有一个对person表的引用列,你必须先将记录插入到person表中,然后再插入Doctor表中,Doctor表中的PersonId值必须存在于Person表中。
请在将数据插入引用表时添加您遇到的查询和问题。

答案 1 :(得分:0)

我不确定为什么你认为你需要一个不同的查询来将数据插入到同时具有主键和外键的表中,查询不会根据表设计进行更改。

由于您已经在问题中发布了查询,我们将使用它将数据插入Doctor表。

您的查询是:

insert into person values('1', 'John', 'Smith', '2343 sdf', 'Tacoma', 'WA', 98001, 5268964563, 564657415)

根据此查询,现在您的Person表格中的数据为id = 1。因此,您现在可以将数据插入到Doctor表中,如下所示:

Insert INTO Doctor Values('1','Brain Damage','1')

我们在外键中使用的1是我们在Person表中插入的{。}}。 请注意,您无法将数据插入到Doctor表中,而PersonId表格中存在的Person无效Foreign key,因为它是target它必须存在。

相关问题