📅  最后修改于: 2023-12-03 15:09:58.593000             🧑  作者: Mango
在 Oracle 数据库中,截断是指将表中所有数据删除,但是保留表的结构。截断操作比删除所有数据更高效,因为它不需要管理或重建表的索引和约束。
截断表的基本语法如下:
TRUNCATE TABLE table_name;
考虑以下示例,其表名为 students
:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR2(50)
);
INSERT INTO students(id, name) VALUES(1, '张三');
INSERT INTO students(id, name) VALUES(2, '李四');
INSERT INTO students(id, name) VALUES(3, '王五');
现在,如果要删除 students
表中的所有行,我们可以使用以下语句:
TRUNCATE TABLE students;
TRUNCATE
操作比 DELETE
操作更快,因为 TRUNCATE
操作不记录日志并在事务处理结束后立即释放表空间。TRUNCATE
操作时,Oracle 将锁定整个表而不是每个行,因此可能会影响其他会话中的查询和 DML 操作。CASCADE
参数来删除所有关联行。 截断操作是 Oracle 中高效删除表中所有数据的快捷方式。它比使用 DELETE
操作更快,并且不需要管理或重建表的索引和约束。但请注意,截断表会删除所有行,因此请谨慎使用。