在本教程中,我们将学习如何使用SQL TRUNCATE TABLE语句有效地删除表中的所有行。
要删除表中的所有行,可以使用SQL delete语句。但是,对于具有大量行的表,DELETE语句效率不高。幸运的是,SQL提供了TRUNCATE TABLE语句,使您能够更有效地删除表中的所有行。
TRUNCATE TABLE语句的语法如下:
TRUNCATE
TABLE
table_name
在TRUNCATE TABLE关键字之后是要删除所有数据的表名。与DELETE语句不同,TRUNCATE TABLE语句没有WHERE子句。
让我们练习一下如何使用TRUNCATE TABLE语句,以便更好地理解它。
首先,我们创建一个名为tmp的表,该表有两列id和name:
CREATE
tmp (
id
INT
NOT
NULL
AUTO_INCREMENT ,
name
VARCHAR
(45)
,
PRIMARY
KEY
(id) );
然后,我们使用SQL insert语句插入一些测试数据:
INSERT
INTO
tmp(
)
VALUES
(
'MySQL'
);
'PostgreSQL'
'theITroad 之路教程'
'Microsoft SQL Server'
接着,我们查询数据以检查insert操作是否成功。
SELECT
*
FROM
tmp;
最后,我们可以使用SQL TRUNCATE TABLE语句删除tmp表中的所有行。
tmp
如果这时我们再次查询tmp表,将看不到任何数据,因为tmp表现在是空的。
在一些数据库管理系统(如Microsoft SQL Server、Oracle和MySQL)中,使用SQL TRUNCATE TABLE语句比使用DELETE语句有许多优点。
然而,SQL TRUNCATE TABLE语句也是有一些局限的:
SQL TRUNCATE TABLE语句不能在被外键约束引用的表中使用。在某些rdbms数据库管理系统中,SQL TRUNCATE TABLE语句不能用于参与索引视图的表或在复制方案中使用的表。
原文链接:https://codingdict.com/