Bonjour j'essaie de faire une requête INSERT sur une table (projects) laquelle contient 2 clés étrangère dont une vers la table users
table users :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| -- Table: users
-- DROP TABLE users;
CREATE TABLE users
(
mail_address character varying(100),
nickname character varying(100),
last_name character varying(100),
first_name character varying(100),
pass character varying(40),
phone character varying(14),
id serial NOT NULL,
cookie_code character varying(40),
date_register date DEFAULT ('now'::text)::date,
siren_number character(9),
CONSTRAINT pk_user PRIMARY KEY (id )
)
WITH (
OIDS=FALSE
);
ALTER TABLE users
OWNER TO admin;
-- Index: pki_user
-- DROP INDEX pki_user;
CREATE INDEX pki_user
ON users
USING btree
(id ); |
table projects :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| -- Table: projects
-- DROP TABLE projects;
CREATE TABLE projects
(
id serial NOT NULL,
title character varying(100),
description text,
id_tarif integer,
date_rec date DEFAULT ('now'::text)::date,
id_user integer NOT NULL,
CONSTRAINT pk_project PRIMARY KEY (id ),
CONSTRAINT fk_tarif FOREIGN KEY (id_tarif)
REFERENCES tarifs (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT fk_user FOREIGN KEY (id_user)
REFERENCES users (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE projects
OWNER TO admin;
-- Index: fki_tarif
-- DROP INDEX fki_tarif;
CREATE INDEX fki_tarif
ON projects
USING btree
(id_tarif );
-- Index: fki_user
-- DROP INDEX fki_user;
CREATE INDEX fki_user
ON projects
USING btree
(id_user ); |
Java lance une exception dont le message est :
ERROR: insert or update on table "projects" violates foreign key constraint "fk_user" Détail : Key (id_user)=(5) is not present in table "users".
Seulement j'ai vérifié il y a bien un enregistrement dans users avec id=5.
J'avoue ne pas trop bien comprendre ce qui se passe.
Merci.
Partager