GBase 8s 中 TRUNCATE TABLE 用于删除表的数据,但不删除表结构。
也可以用 DROP TABLE 删除表,但是这个命令会连表的结构一起删除,如果想插入数据,需要重新建立这张表。
TRUNCATE TABLE 与 DELETE 具有相同的效果,但是由于它实际上并不扫描表,所以速度更快。 此外,TRUNCATE TABLE 可以立即释放表空间,这在大型表上非常有用。
语法
TRUNCATE TABLE 基础语法如下:
TRUNCATE [TABLE] table_name;
实例
创建 COMPANY 表,数据内容如下:
DROP TABLE IF EXISTS COMPANY;
CREATE TABLE COMPANY(
ID SERIAL PRIMARY KEY,
NAME VARCHAR(40) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY DECIMAL(10,2),
JOIN_DATE DATE DEFAULT TODAY
);
INSERT INTO COMPANY VALUES (0, '李雷', 37, '北京', 20000.00,'2005-05-13');
INSERT INTO COMPANY VALUES (0, '韩梅梅', 35, '天津', 16000.00, '2007-12-18');
INSERT INTO COMPANY VALUES (0, '林涛', 36, '上海', 25000.00, '2006-01-04');
INSERT INTO COMPANY VALUES (0, '魏华', 36, '西安', 15000.00, '2007-08-30');
INSERT INTO COMPANY VALUES (0, '露茜', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '莉莉', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '吉姆', 35, '华盛顿', 16000.00, '2010-12-13');
INSERT INTO COMPANY VALUES (0, '汤姆', 36, '渥太华', 21000.00, '2010-04-30');
此时,COMPANY的表记录为:
id | name | age | address | salary | join_date |
---|---|---|---|---|---|
1 | 李雷 | 37 | 北京 | 20000.00 | 2005-05-13 |
2 | 韩梅梅 | 35 | 天津 | 16000.00 | 2007-12-18 |
3 | 林涛 | 36 | 上海 | 25000.00 | 2006-01-04 |
4 | 魏华 | 36 | 西安 | 15000.00 | 2007-08-30 |
5 | 露茜 | 34 | 伦敦 | 22000.00 | 2008-08-08 |
6 | 莉莉 | 34 | 伦敦 | 22000.00 | 2008-08-08 |
7 | 吉姆 | 35 | 华盛顿 | 16000.00 | 2010-12-13 |
8 | 汤姆 | 36 | 渥太华 | 21000.00 | 2010-04-30 |
下面实例使用了 TRUNCATE TABLE 来清除 COMPANY 表:
TRUNCATE TABLE COMPANY;
得到结果如下:
id | name | age | address | salary | join_date |
---|