我需要一双新的眼睛来帮助我了解我在这里做错了什么!
我创建了这些表:
CREATE TABLE bankkund(
PNR VARCHAR2(11) PRIMARY KEY,
FNAMN VARCHAR2(25) NOT NULL,
ENAMN VARCHAR2(25) NOT NULL,
PASSWD VARCHAR2(16) NOT NULL,
UNIQUE(PASSWD));
CREATE TABLE konto(
KNR NUMBER(8)PRIMARY KEY,
KTNR NUMBER(6)NOT NULL,
REGDATUM DATE NOT NULL,
SALDO NUMBER(10,2),
FOREIGN KEY(ktnr) REFERENCES kontotyp(ktnr));
CREATE TABLE kontoägare(
RADNR NUMBER(9)PRIMARY KEY,
PNR VARCHAR2(11)NOT NULL,
KNR NUMBER(8)NOT NULL,
FOREIGN KEY(pnr) REFERENCES bankkund(pnr),
FOREIGN KEY(knr) REFERENCES konto(knr));
然后这个顺序:
create sequence radnr_seq
start with 1
increment by 1;
,然后每当我想插入以下值,我得到一个完整性约束错误:
INSERT INTO kontoägare(radnr,pnr,knr)
VALUES(radnr_seq.NEXTVAL,'540126-1111',123);
INSERT INTO kontoägare(radnr,pnr,knr)
VALUES(radnr_seq.NEXTVAL,'691124-4478',123);
INSERT INTO kontoägare(radnr,pnr,knr)
VALUES(radnr_seq.NEXTVAL,'540126-1111',5899);
INSERT INTO kontoägare(radnr,pnr,knr)
VALUES(radnr_seq.NEXTVAL,'691124-4478',8896);
COMMIT;
我错过了什么??
您看到的错误是意料之中的。表"kontoagare"有两个外键:FOREIGN KEY(pnr) REFERENCES bankkund(pnr)
和FOREIGN KEY(knr) REFERENCES konto(knr))
。这意味着" pn& quot;的值需要存在于表bankkund"以及"knr"的值需要存在于"konto"中。如果在执行插入时不存在这些值中的任何一个,则会引发完整性约束错误。