postgresql键约束错误

问题描述 投票:0回答:1

我尝试为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”

但我真的不知道为什么会发生这种情况,因为它与其下面的其他外键相同

有人可以帮我解决这个问题吗?

postgresql
1个回答
1
投票

您尝试链接到尚不存在的产品和kaart。

移动:

INSERT INTO kaart_product VALUES (1,1);

下面有两行:

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

那应该为你做的工作。尝试搜索谷歌的外键约束及其工作方式。

© www.soinside.com 2019 - 2024. All rights reserved.