Truncate cascade?? [Postgresql] - SQL/NoSQL - Programmation
Marsh Posté le 04-10-2007 à 10:32:34
Etrange ce mot-clé "cascade" sur truncate... habituellement, truncate ça sert justement à shooter les données d'une table sans se soucier de l'intégrité...
Marsh Posté le 04-10-2007 à 10:34:14
Ca veut rien dire ce que tu dis: on parle de SGBD-R, ça n'est pas possible de violer les contraintes.
Marsh Posté le 04-10-2007 à 10:37:11
|
"S'il ne parcours pas les lignes", je vois mal comment il va vérifier l'intégrité...
D'autant que l'intégrité ne s'arrête pas aux contraintes FK... Les triggers entre autre ne sont pas levés, alors faut pas espérer avoir des données dans un état stable à la fin du traîtement.
Marsh Posté le 04-10-2007 à 10:41:01
Et pour info :
|
A partir de là, ça peut très bien faire de la tarte à la fraise, il n'est plus question de parler de "SGBD-R" en règle générale. Chaque éditeur est libre de faire la tambouille qu'il veut de son côté.
Voici d'ailleurs une des conditions d'utilisation de TRUNCATE sur "ASASQL" :
|
=> Si tu dois dropper tes contraintes avant... C'est sûr que c'est plus simple...
Marsh Posté le 04-10-2007 à 10:42:05
Et enfin :
|
Si c'est pas transactionnel, alors on sort du scope du SGBD-R. A partir de là on n'a pas à espérer qu'il respecte les contraintes.
Marsh Posté le 04-10-2007 à 10:52:09
En jettant un oeil sur la doc d'Oracle 10g, je vois qu'on peut truncater une table sans tenir compte des FK. Il faut cependant les désactiver avant.
http://download.oracle.com/docs/cd [...] _10006.htm
Par contre, dans des versions plus anciennes (7 et 8 au moins) cette désactivation n'était pas nécessaire.
Marsh Posté le 04-10-2007 à 11:14:37
OK, j'avais déja regardé la doc postgresql et cela ne fonctionnait pas...mais je suis tout à fait d'accord avec vous.
En fait, je crois tout simplement que j'avais du faire mon cascade pour un exemple très simple ou ces tables en cascade n'interféraient que très peu avec l'ensemble du système.
Je vais regarder si je peux désactiver mes fk.
Merci pour votre aide
Marsh Posté le 04-10-2007 à 10:18:07
Bonjour,
Juste un détail qui me semble étonnant. J'étais persudé il y'a quelque temps que : truncate 'nomtable' cascade ,marchait sous postgresql.
Me serais je totalement trompé??
Merci de vos réponses