2017-06-07 47 views
-1

我想知道如何将新的数据插入到具有一个主键的另一个外键的Doctor表中。将数据插入到具有一个主键的表中,使用查询的另一个外键

例如,我为以下人员表添加了值,请告诉我它是如何在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) 

由于大部分

+0

您像插入数据一样插入数据,您只需确保您要使用的外键实际存在于Person表中。 –

+0

我尝试了很多次,但我没有得到正确的语法,这就是为什么我问。 – JOe

+0

这是相同的语法,有一个外键的主键不会改变语法,再加上,如果你尝试了很多次,你可以发布你的一个尝试吗? –

回答

0

你说的如何将数据添加到医生表是什么意思?
就像您将记录添加到人员表格一样,您可以将记录添加到Doctor表格中。
由于Doctor表具有人员表的引用列,因此您必须先将人员表中的记录插入Doctor表中,并且Doctor表中的PersonId值必须存在于Person表中。
请在将数据插入参考表时添加查询和问题。

0

我不知道为什么你认为你需要一个不同的查询插入数据到一个同时具有主键和外键的表中,查询不会根据表设计而改变。

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

您所查询的是:

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

根据这个查询,现在你有一个id = 1Person表中的数据。为此,现在你可以将数据插入到表Doctor像这样:

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

我们的外键使用的1是我们插入Person表中的一个。
请注意,您将无法将数据插入Doctor表中,因为它是Foreign key且它必须存在,所以Person表中不存在无效的PersonId

+0

谢谢,我想知道如何处理主键数据而不插入任何东西(如果这是auto_increment)。 – JOe

+0

如果它是auto_increment,则不必插入它,它会自行插入。您也可以正常选择它,或者按照它的标准进行搜索 –

相关问题