truncate.sql

来自「PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统」· SQL 代码 · 共 59 行

SQL
59
字号
-- Test basic TRUNCATE functionality.CREATE TABLE truncate_a (col1 integer primary key);INSERT INTO truncate_a VALUES (1);INSERT INTO truncate_a VALUES (2);SELECT * FROM truncate_a;-- Roll truncate backBEGIN;TRUNCATE truncate_a;ROLLBACK;SELECT * FROM truncate_a;-- Commit the truncate this timeBEGIN;TRUNCATE truncate_a;COMMIT;SELECT * FROM truncate_a;-- Test foreign-key checksCREATE TABLE trunc_b (a int REFERENCES truncate_a);CREATE TABLE trunc_c (a serial PRIMARY KEY);CREATE TABLE trunc_d (a int REFERENCES trunc_c);CREATE TABLE trunc_e (a int REFERENCES truncate_a, b int REFERENCES trunc_c);TRUNCATE TABLE truncate_a;		-- failTRUNCATE TABLE truncate_a,trunc_b;		-- failTRUNCATE TABLE truncate_a,trunc_b,trunc_e;	-- okTRUNCATE TABLE truncate_a,trunc_e;		-- failTRUNCATE TABLE trunc_c;		-- failTRUNCATE TABLE trunc_c,trunc_d;		-- failTRUNCATE TABLE trunc_c,trunc_d,trunc_e;	-- okTRUNCATE TABLE trunc_c,trunc_d,trunc_e,truncate_a;	-- failTRUNCATE TABLE trunc_c,trunc_d,trunc_e,truncate_a,trunc_b;	-- ok-- circular referencesALTER TABLE truncate_a ADD FOREIGN KEY (col1) REFERENCES trunc_c;-- Add some data to verify that truncating actually works ...INSERT INTO trunc_c VALUES (1);INSERT INTO truncate_a VALUES (1);INSERT INTO trunc_b VALUES (1);INSERT INTO trunc_d VALUES (1);INSERT INTO trunc_e VALUES (1,1);TRUNCATE TABLE trunc_c;TRUNCATE TABLE trunc_c,trunc_d;TRUNCATE TABLE trunc_c,trunc_d,trunc_e;TRUNCATE TABLE trunc_c,trunc_d,trunc_e,truncate_a;TRUNCATE TABLE trunc_c,trunc_d,trunc_e,truncate_a,trunc_b;-- Verify that truncating did actually workSELECT * FROM truncate_a   UNION ALL SELECT * FROM trunc_c   UNION ALL SELECT * FROM trunc_b   UNION ALL SELECT * FROM trunc_d;SELECT * FROM trunc_e;DROP TABLE truncate_a,trunc_c,trunc_b,trunc_d,trunc_e CASCADE;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?