簡體   English   中英

PostgreSQL的關鍵約束錯誤

[英]postgresql key contraint fault

我嘗試為postgresql創建代碼

CREATE TABLE kaart (
    kaartid integer NOT NULL,
    naam character varying,
    saldo real,
    kaarthouderid integer
);


CREATE TABLE kaart_product (
    kaartkaartid integer,
    productid2 integer
);

CREATE TABLE kaarthouder (
    id integer NOT NULL,
    naam character varying(255),
    naw character varying(255),
    geslacht "char"
);

CREATE TABLE product (
    naam character varying,
    id integer NOT NULL
);


ALTER TABLE ONLY kaart
    ADD CONSTRAINT kaart_pkey PRIMARY KEY (kaartid);

ALTER TABLE ONLY kaarthouder
    ADD CONSTRAINT kaarthouder_pkey PRIMARY KEY (id);

ALTER TABLE ONLY product
    ADD CONSTRAINT product_pkey PRIMARY KEY (id);

ALTER TABLE ONLY kaart
    ADD CONSTRAINT kaartco FOREIGN KEY (kaartid) REFERENCES kaarthouder(id) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE ONLY kaart_product
    ADD CONSTRAINT kaartkaartidco FOREIGN KEY (kaartkaartid) REFERENCES kaart(kaartid) ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE ONLY kaart_product
    ADD CONSTRAINT productidco FOREIGN KEY (kaartkaartid) REFERENCES product(id) ON UPDATE CASCADE ON DELETE CASCADE;

INSERT INTO kaart VALUES (1, 'Sander',50.00 ,1);
INSERT INTO kaart_product VALUES (1,1);
INSERT INTO kaarthouder VALUES (1, 'Sander','test,testing','man');
INSERT INTO product VALUES ('studentenproduct',1);

但是,每當我嘗試運行它時,都會出現此錯誤:

23503:在表“ kaart”上插入或更新違反了外鍵約束“ kaartco”

但是我真的不知道為什么會發生這種情況,因為它與它下面的其他外鍵相同

有人可以幫我解決這個問題嗎?

您嘗試鏈接到尚不存在的產品和kaart。

移動:

INSERT INTO kaart_product VALUES (1,1);

下兩行:

INSERT INTO product VALUES ('studentenproduct',1);

那應該為您完成工作。 嘗試在Google上搜索forgein關鍵約束及其工作方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM