Supprimer toutes les données d'une base sous SQL ?

Supprimer toutes les données d'une base sous SQL ? - Logiciels - Windows & Software

Marsh Posté le 07-08-2003 à 15:15:36    

J'essaye de supprimer toutes les entrées d'une base SQL avec la commande TRUNCATE mais je me fait insulter par SQL me disant que je ne peux l'éxécuter parce qu'une entrée de la base en question est référencée par un contrainte de clé étrangère !
 
Heuuu, j'ai pas vraiment de connaissances approfondis en SQL, puis-je espérer un peu d'aide pour réaliser ce que je veux faire...
 
Merci

Reply

Marsh Posté le 07-08-2003 à 15:15:36   

Reply

Marsh Posté le 07-08-2003 à 15:20:13    

Bien je pense que tant qu'un élement de ta base est clé étrangère d'une autre je pense que ca va être dur de la faire sauter :/ Il doit falloir d'abord supprimer cette clé étrangère. Mais bon aprés tout dépend quelle base de données tu utilises, et je suis pas un pro en la matière...

Reply

Marsh Posté le 07-08-2003 à 15:23:14    

webman a écrit :

Bien je pense que tant qu'un élement de ta base est clé étrangère d'une autre je pense que ca va être dur de la faire sauter :/ Il doit falloir d'abord supprimer cette clé étrangère. Mais bon aprés tout dépend quelle base de données tu utilises, et je suis pas un pro en la matière...


 
moi encore moins  [:spamafote]


Message édité par athon le 07-08-2003 à 15:23:27
Reply

Marsh Posté le 07-08-2003 à 16:00:28    

Faire un truncate permet de ne pas passer par les mécanismes de transactions, ni d'appliquer des critères sur la suppression. C'est très rapide.  
 
Par contre, ça ne te dispense pas de respecter les contraintes d'intégrité référentielle.
 
Exemple Table père, table fils. Un père peut avoir plusieurs fils. Tu as un contrainte d'intégrité référentielle dans la table fils sur la table père (chaque fils doit au moins avoir un père).
 
Si tu fais un truncate sur la table père et qu'il reste des fils, les serveur t'insulte et ne fais rien du tout.
 
Faut faire un truncate (ou delete, le problème n'est pas là) sur la table des fils AVANT de le faire sur la table des pères
 
Voila, j'espère que ça t'aide.
 
PS : si tu veux conserver les données de la table de fils, tu peux aussi supprimer la contrainte d'intégrité référentielle.


---------------
Le but de l'homme moderne sur cette terre est à l'évidence de s'agiter sans réfléchir dans tous les sens, afin de pouvoir dire fièrement, à l'heure de sa mort : "Je n'ai pas perdu mon temps." - Pierre Desproges
Reply

Marsh Posté le 07-08-2003 à 16:04:05    

Warzouz a écrit :

Faire un truncate permet de ne pas passer par les mécanismes de transactions, ni d'appliquer des critères sur la suppression. C'est très rapide.  
 
Par contre, ça ne te dispense pas de respecter les contraintes d'intégrité référentielle.
 
Exemple Table père, table fils. Un père peut avoir plusieurs fils. Tu as un contrainte d'intégrité référentielle dans la table fils sur la table père (chaque fils doit au moins avoir un père).
 
Si tu fais un truncate sur la table père et qu'il reste des fils, les serveur t'insulte et ne fais rien du tout.
 
Faut faire un truncate (ou delete, le problème n'est pas là) sur la table des fils AVANT de le faire sur la table des pères
 
Voila, j'espère que ça t'aide.
 
PS : si tu veux conserver les données de la table de fils, tu peux aussi supprimer la contrainte d'intégrité référentielle.


 
Merci de ta réponse, je regarde...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed