Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2007, 15h43   #1
Expert Confirmé
 
Avatar de natha
 
Inscription : janvier 2006
Messages : 2 345
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 2 345
Points : 2 513
Points : 2 513
Par défaut [9i][Check constraint] Problème d'update

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 :
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
__________________
Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
De la bonne manière de poser une question (et de répondre).
Je ne fais pas de service par MP. Merci (...de lire les règles...).
Ma page dvp.com
natha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2007, 08h34   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
manque un commit entre les updates donc des locks
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2007, 08h45   #3
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
On peut vérifier assez facilement si une transaction attend sur des verrous détenus par une autre transaction en utilisant les vues DBA_BLOCKERS et DBA_WAITERS.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2007, 11h29   #4
Expert Confirmé
 
Avatar de natha
 
Inscription : janvier 2006
Messages : 2 345
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 2 345
Points : 2 513
Points : 2 513
Citation:
Envoyé par Fred_D
manque un commit entre les updates donc des locks
J'étais en auto-commit
Il n'y avait aucun vérou.
__________________
Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
De la bonne manière de poser une question (et de répondre).
Je ne fais pas de service par MP. Merci (...de lire les règles...).
Ma page dvp.com
natha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 22h40   #5
Membre Expert
 
Inscription : avril 2006
Messages : 1 024
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 024
Points : 1 175
Points : 1 175
J'ai déja eu ce genre de bug en oracle 8.1.7.0 sur des table organisées en index, les clause where des update n'étaient pas toutes prises...

Je pense qu'il va faloir faire une recherche sur ce bon vieux métalink...
remi4444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 21h02   #6
Expert Confirmé
 
Avatar de natha
 
Inscription : janvier 2006
Messages : 2 345
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 2 345
Points : 2 513
Points : 2 513
Ok, merci.
Je vais laisser tomber ça pour le moment
__________________
Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
De la bonne manière de poser une question (et de répondre).
Je ne fais pas de service par MP. Merci (...de lire les règles...).
Ma page dvp.com
natha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h58.


 
 
 
 
Partenaires

Hébergement Web