2010-06-18 952 views
2

我想删除表中的所有数据行,但不删除表。 delete语句有一个where子句,所以我必须逐一给出每一行。是否有任何其他方式删除表中的整个数据行?如何在sqlplus oracle中删除表中的所有数据

这是Oracle和使用sqlplus

+3

SQL中的WHERE子句是完全可选的。所以'删除mytable;'是完全有效的,并且可以工作。 – 2010-07-01 19:06:00

回答

2

你放弃约束会更好然后使用截断命令,并在删除数据后再次应用约束。

4

你可以试试: TRUNCATE TABLE表名

2
Truncate Table tablename 

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

您可以delete from tablename也删除所有记录,但截断快得多

+0

我刚刚发布此链接。 :-) – Klinger 2010-06-18 01:50:11

+0

如何在我们有外键时截断。有人可以帮我 – Nubkadiya 2010-06-18 02:00:26

+0

那么,这是不同的...... :-)应该在你原来的问题中提到。您将需要删除外键约束,然后执行删除/截断并将约束添加回去。 – klabranche 2010-06-18 02:04:25

1

尝试使用FORALL进行批量删除。在这种情况下,可以在一次删除事务中删除整行中的一行,而不是删除一行。

相关问题