1
create table  s38
(
 sno number(5) primary key,
 sname varchar(10),
 city varchar(10)
);
create table  p38
(
 pno number(5) primary key,
 pname varchar(10),
 color varchar(10)
);
create table  j38
(
 jno number(5) primary key,
 jname varchar(10),
 city varchar(10)
);
create table spj38
(
 primary key (sno,pno,jno) ,
 qty number(5),
  sno references s38(sno),
 pno references p38(pno) ,
 jno references j38(jno)   
);

table data:
s38:
1 ayush patiala
2 pankaj indore

p38:
1 nut gray
2 hammer black

j38:
1 mining bhopal
2 super pune
 spj38:
1,1,1,100

これら 4 つのテーブルを作成しましたが、spj38 にデータを挿入すると、親キー違反エラーが表示されます。なぜですか? 外部キー制約を維持しました。

4

1 に答える 1

0

主キー違反の唯一の理由は、主キー列に同じ値を追加していることです。あなたの場合sno, pno, jno、複合キーは

また、テーブルに外部キー制約を適用した場合、追加するキーは親テーブルに存在する必要があるため、挿入クエリに追加しようとしている値は親テーブルに存在する必要があります。

テーブルに 1,1,1,100 を追加すると、同じ複合キーを再度追加することはできません。この場合は 1,1,100 になります。

お役に立てれば

于 2013-01-18T10:20:26.713 に答える