A voir également:
- Faire un trigger avec une sous-requête
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
- Requête sql date supérieure à ✓ - Forum Programmation
- La requête graphql n’est pas autorisée facebook - Forum Facebook
- Nos systèmes ont détecté un trafic exceptionnel sur votre réseau informatique. cette page permet de vérifier que c'est bien vous qui envoyez des requêtes, et non un robot ✓ - Forum Virus
- Requête sql pix - Forum Python
1 réponse
jee pee
Messages postés
40359
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
24 octobre 2024
9 390
22 oct. 2012 à 18:10
22 oct. 2012 à 18:10
Salut,
L'erreur signifie que tu demandes au trigger de mettre à jour une table qui est en cours de mise à jour ou qui même a déclenché le trigger. En gros tu boucles.
C'est donc une mauvaise conception.
Tu n'as d'ailleurs pas mentionné la table temp_match ?
Plutôt d'insérer des valeurs aléatoires, tu devrais revoir ton programme pour insérer les infos du club issus de la table joueur, pas essayer de corriger après coup une valeur mise au pif.
cdlt
L'erreur signifie que tu demandes au trigger de mettre à jour une table qui est en cours de mise à jour ou qui même a déclenché le trigger. En gros tu boucles.
C'est donc une mauvaise conception.
Tu n'as d'ailleurs pas mentionné la table temp_match ?
Plutôt d'insérer des valeurs aléatoires, tu devrais revoir ton programme pour insérer les infos du club issus de la table joueur, pas essayer de corriger après coup une valeur mise au pif.
cdlt
22 oct. 2012 à 18:46
j'ai oublié de modifier c'est la table match que j'update dans le trigger mais bon ca va conduire au même problème.
j'ai déjà essayé en faisant la sous requête dans le insert pour le champ num_club1 comme ci-dessous :
INSERT INTO match(num_match,num_license1,num_license2,num_club1,num_club2,date_match)
(SELECT '',dbms_random.value(1,60),dbms_random.value(1,60),select num_club from adherent where num_license=''),dbms_random.value(1,15),TO_DATE(TRUNC(DBMS_RANDOM.VALUE(2455928,2455928+364)),'J')
FROM DUAL
CONNECT BY LEVEL <= 50);
Le problème , c'est que je sais pas quoi mettre après le num_license pour qu'il le fasse pour chaque ligne en modifiant le num_club
22 oct. 2012 à 18:46
23 oct. 2012 à 12:50
23 oct. 2012 à 14:03
la sous-requête elle serait du style : select num_club from joueur where num_license=(select num_license1 from match where num_license=??? et je sais pas quoi mettre pour le faire pour chaque ligne de match ou si t'as une autre idée merci de m'aider