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 :
table projects :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 );
Java lance une exception dont le message est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 );
Seulement j'ai vérifié il y a bien un enregistrement dans users avec id=5.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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".
J'avoue ne pas trop bien comprendre ce qui se passe.
Merci.
Partager