【问题标题】:How to delete all the data from the table in sqlplus oracle如何从sqlplus oracle中删除表中的所有数据
【发布时间】:2011-03-05 05:58:00
【问题描述】:

我想删除表中的所有数据行,但不删除表。删除语句有一个 where 子句,所以我必须为每一行一一给出。有没有其他方法可以删除表中的整个数据行?

这是Oracle 并使用sqlplus

【问题讨论】:

  • SQL 中的WHERE 子句是完全可选的。所以DELETE FROM mytable; 是完全有效的,并且会起作用。

标签: oracle11g sqlplus


【解决方案1】:

您可以尝试: TRUNCATE TABLE 表名

【讨论】:

    【解决方案2】:
    Truncate Table tablename
    

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

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

    【讨论】:

    • 我正要发布这个链接。 :-)
    • 当我们有外键时如何截断。有人可以帮我吗
    • 嗯,那是不同的...... :-) 应该在你原来的问题中提到这一点。您需要删除外键约束,然后执行删除/截断并重新添加约束。
    • 在 drop table 中有一个叫做 cascase 约束的东西。不要截断相同的
    【解决方案3】:

    你最好放弃约束,然后使用 Truncate 命令,在删除数据后,再次应用约束。

    【讨论】:

      【解决方案4】:

      尝试使用FORALL 进行批量删除。这样一来,可以在单个删除事务中删除整个批量,而不是一次删除一行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        • 2022-01-26
        相关资源
        最近更新 更多