Salut,

Pour expérimenter la "check constraint" j'ai créé une table qui 'étend' une autre (lien 1-1).
table parent avec un id
table child avec un id et une fk sur l'id de parent (parent_id)

J'ai une check constraint sur la table child qui check : id = parent_id

J'ai 2 enregistrements dans la table enfant.

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
 
select id from child
5189
5190
 
select id from child where id = 5190
5190
 
select id from child where parent_id = 5190
5190
 
update child set user_modif = 'test' where id = 5190
-- => 0 row(s) updated !!!!!!!!!!????????
 
update child set user_modif = 'test' where parent_id = 5190
-- => 1 row(s) updated
 
update child set user_modif = 'test'
-- => ... je n'ai pas attendu que ça se finisse, ça prenait trop de temps... 
-- pour seulement 2 lignes !!! et aucun triggers ou cascades ou autre chose qui pourrait expliquer cette lenteur ...
Sans la check constraint, ça marche normalement.
Ce qui est bizarre c'est que j'ai exactement le même système sur 2 autres tables et que ça marche sans problème (sur le même schéma et tout et tout).
L'autre point bizarre est que ça marchait sans problème hier.

J'aimerais juste votre opinion sur ce problème.
Je vais de toute façon virer la colonne id de la table child et mettre la pk sur parent_id.

Merci,
Natha