主键SQL中的两个属性(将外键引用到此键)
我在创建表时遇到了SQL问题。 例如:主键SQL中的两个属性(将外键引用到此键),sql,database,oracle,foreign-keys,primary-key,Sql,Database,Oracle,Foreign Keys,Primary Key,我在创建表时遇到了SQL问题。 例如: /* lekovi */ create table lekovi ( kid number(5), Isifra number(10), lime varchar2(50), sostav varchar2(500), primary key (kid, Isifra), foreign key (kid) references kompanii (kid) ) /* recepti */ create
/* lekovi */
create table lekovi
(
kid number(5),
Isifra number(10),
lime varchar2(50),
sostav varchar2(500),
primary key (kid, Isifra),
foreign key (kid) references kompanii (kid)
)
/* recepti */
create table recepti
(
kid number(5),
Isifra number(10),
dembg number(13),
pembg number(13),
datum varchar2(50),
doza varchar2(500),
primary key (kid, Isifra, dembg, pembg), <---
foreign key (kid, Isifra) references lekovi (kid, Isifra), <---
foreign key (dembg) references doktori (dembg),
foreign key (pembg) references pacienti (pembg)
)
/*lekovi*/
创建表lekovi
(
儿童编号(5),
Isifra编号(10),
石灰瓦查尔2(50),
sostav varchar2(500),
主键(kid、Isifra),
外键(kid)引用kompanii(kid)
)
/*接待员*/
创建表格接收
(
儿童编号(5),
Isifra编号(10),
dembg编号(13),
pembg编号(13),
基准varchar2(50),
doza varchar2(500),
主键(kid、Isifra、dembg、pembg),
如何将复合外键从“Receptor”引用到“lekovi”
与您完全相同。外键应具有与引用键相同的列内容(列数和位置/数据类型)
不清楚您的问题是什么?您想得到什么?如何将复合外键从“Receptor”引用到“lekovi”?但是当我将数据插入表“Receptor”时我看到了这个表单,但我已经将引用lekovi的ID设置为一个而不是两个文本字段。很抱歉,我看不出您引用的web表单与您的问题有什么关系。您在lekovi表中创建了复合主键。引用此主键的所有外键必须与它们引用的PK具有相同的结构-这是RDBMS的设计法则。如果您需要分别创建引用Key和Isifra列的外键。您必须引用具有相应结构的其他表中的其他PK。但您应该根据业务需求做出此决定。
SQL> create table lekovi (
2 kid number(5),
3 Isifra number(10),
4 lime varchar2(50),
5 sostav varchar2(500),
6 primary key (kid, Isifra)
7 )
8 /
Table created.
SQL> create table recepti (
2 kid number(5),
3 Isifra number(10),
4 dembg number(13),
5 pembg number(13),
6 datum varchar2(50),
7 doza varchar2(500),
8 primary key (kid, Isifra, dembg, pembg),
9 foreign key (kid, Isifra)
10 references lekovi (kid, Isifra)
11 )
12 /
Table created.