2010-06-18 12 views
2

Je souhaite supprimer toutes les lignes de données de la table, mais sans supprimer la table. L'instruction delete a une clause where, je dois donc les donner une par une pour chaque ligne. Existe-t-il un autre moyen de supprimer toutes les lignes de données dans le tableau?Comment supprimer toutes les données de la table dans sqlplus oracle

Ceci est Oracle et en utilisant sqlplus

+3

La clause WHERE dans SQL est complètement facultative. Donc 'DELETE FROM mytable;' est parfaitement valide et fonctionnera. –

Répondre

2

Il vaudra mieux que vous laissiez tomber une contrainte d puis utilisez la commande Truncate et après avoir supprimé les données, appliquez à nouveau la contrainte.

4

Vous pouvez essayer: TRUNCATE TABLE nom_table

2
Truncate Table tablename 

http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands

Vous pouvez supprimer tous les enregistrements avec delete from tablename aussi, mais tronque est beaucoup plus rapide

+0

J'étais sur le point de publier ce lien. :-) – Klinger

+0

comment tronquer quand nous avons des clés étrangères. quelqu'un peut-il m'aider? – Nubkadiya

+0

Eh bien, c'est différent ... :-) J'aurais dû le mentionner dans votre question initiale. Vous devrez supprimer les contraintes de clé étrangère, puis supprimer/tronquer et ajouter la contrainte. – klabranche

1

Essayez la suppression en masse en utilisant FORALL. Au lieu de supprimer une ligne à la fois, un volume entier peut être supprimé dans une seule transaction de suppression.