2017-12-18 4 views
0

내가 PostgreSQL을PostgreSQL의 키 contraint 오류

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"

하지만 난 정말이 일이 왜이

그래서 할 수있는 사람의 도움 m 아래에있는 다른 외부 키에 동일하기 때문에 잘 모릅니다 이걸 고쳐?

답변

1

아직 존재하지 않는 제품과 카셋트에 연결하려고합니다.

이동 : 당신을 위해 일을해야

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

: 아래로 아래

INSERT INTO kaart_product VALUES (1,1); 

두 줄. forgein 키 contstraints 및 작동 방식을 Google에서 검색하십시오.