Cannot deactivate index used by a PRIMARY/UNIQUE constraint
Bonjour,
Lorsque je tente de supprimer les données de toutes les tables de la BDD j'obtient le message suivant:
Code:
1 2 3 4
|
Project raised exception class EUIBerror with message action canceled by trigger(3)
to preserve data integrity cannot deactivate index used by a PRIMARY/UNIQUE constraint
at procedure INIT_MODULE |
1) Les données sont supprimées dans la procedure stockée INIT_MODULE et avant d'entamer la suppression je désactive les index
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
............désactivation des index...................
UPDATE
RDB$INDICES
SET
RDB$INDEX_INACTIVE = 1
WHERE (RDB$SYSTEM_FLAG IS NULL OR RDB$SYSTEM_FLAG = 0);
.....début de la suppression....................................................
DELETE FROM TABLE1
DELETE FROM TABLE2
DELETE FROM TABLE (n)
............réactivation des index...................
UPDATE
RDB$INDICES
SET
RDB$INDEX_INACTIVE = 0
WHERE (RDB$SYSTEM_FLAG IS NULL OR RDB$SYSTEM_FLAG = 0); |
2)- Comme je n'arrive pas à désactiver les triggers dans la PS avant celle des index je le fais depuis l'application avec la propriété DeactiveAllTriggers du TUIBDatabase. Désactiver les triggers dans la PS me renvoi le message suivant:
Code:
1 2
|
UPDATE operation is not allowed for system table RDB$TRIGGERS. |
Code de désactivation des triggers:
Code:
1 2 3 4 5 6 7 8 9
|
UPDATE
RDB$TRIGGERS
SET
RDB$TRIGGER_INACTIVE = 1
WHERE
RDB$TRIGGER_SOURCE IS NOT NULL
AND ((RDB$SYSTEM_FLAG = 0)
OR (RDB$SYSTEM_FLAG IS NULL)) ; |
Pour les triggers ca ne pose plus de problème puisque ca marche depuis l'application mon problème c'est les index qui ne ce désactivent pas pour pouvoir executer les suppressions.
J'utilise FB3
Auriez-vous SVP une solution ?
En vous remerciant.