我刚才有一个关于SQL中主键的快速问题。我在一个表(Patient)中有一个主键,在另一个表(Facility)中有一个不同的主键。我想要做的就是连接它们,这样我就可以获得Patient的主键,并在我的Facility表中拥有确切的主键(带数据)。我该怎么做呢?感谢您提前的任何帮助,非常感谢!
答案 0 :(得分:1)
这是一种有趣的关系。但是你可以在两个表中插入相同的id:
INSERT INTO Parient(ID, NAME) VALUES (5, 'Mike');
INSERT INTO Facility(ID, LOCATION) VALUES (5, 'San Francisco');
你可以使用序列作为第一个插入,然后使用生成的新id作为第二个插入(当前值)。
注意:我不推荐这种ID同步的做法。更好的方法是让您的数据库为我们分配唯一ID(使用自动增量序列),然后定义外键约束,将FACILITY_ID
添加到Patient表或PATIENT_ID
到Facility表实现一对一的关系。
答案 1 :(得分:1)
添加包含两个键的其他表格(例如住院治疗):
create table hospitalization (
patient_id int not null,
facility_id int not null,
date_start date not null,
date_end date
);
这是与许多属性的标准,并且意味着患者可以多次住院,每个设施可能有许多患者。