我创建表时遇到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 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
和recepti
。
在表格lekovi
中,我有主键(kid, Isifra)
。当我从recepti
引用时(在代码中用&lt; ---标记)我有问题,因为我展示了两个单独的键而不是复合词。 SQL是用ORACLE编写的。
如何用键解决这个问题?
答案 0 :(得分:0)
如何将复合外键从“recepti”引用到“lekovi”?
正如你所做的那样。外键应具有与引用键相同的列内容(列数和位置/数据类型)。
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.