清空表
语法格式
sql
truncatestmt::=
TRUNCATE [ TABLE ] sche_name.table_name [NOWAIT | WAIT | WAIT ICONST]
参数说明
schema_name
:模式名。table_name
:表名。
说明:
TRUNCATE
是将表中所有的记录全部清除,而DELETE
语句带上条件后是选择性地清除记录。如果不带条件类似于TRUNCATE,如DELETE FROM student;
删除整张表。TRUNCATE
操作可收回数据存储空间用于系统复用,而DELETE
只是在行级上标示该记录被删除,不会回收数据存储空间。
示例
MySQL兼容模式下,TRUNCATE表后,该表的自增字段重置为1。
sql
-- 设置兼容模式为MySQL
SET compatible_mode TO 'MYSQL';
-- 创建表,并插入数据
CREATE TABLE customers(id int IDENTITY, tel VARCHAR(11));
INSERT INTO customers(tel) values('cdscdsc');
SELECT * FROM customers c ;
ID|TEL |
--+-------+
1|cdscdsc|
-- 清空表
TRUNCATE table customers ;
-- 再次插入数据,并查询可以看到id字段是重置为1开始
INSERT INTO customers(tel) values('cdscdsc');
INSERT INTO customers(tel) values('cdscdsc');
SELECT * FROM customers c ;
ID|TEL |
--+-------+
1|cdscdsc|
2|cdscdsc|