truncate.sql

来自「postgresql8.3.4源码,开源数据库」· SQL 代码 · 共 80 行

SQL
80
字号
-- 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;	-- okTRUNCATE TABLE truncate_a RESTRICT; -- failTRUNCATE TABLE truncate_a CASCADE;  -- 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,truncate_a;TRUNCATE TABLE trunc_c,truncate_a,trunc_d;TRUNCATE TABLE trunc_c,truncate_a,trunc_d,trunc_e;TRUNCATE TABLE trunc_c,truncate_a,trunc_d,trunc_e,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;-- Add data again to test TRUNCATE ... CASCADEINSERT 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 CASCADE;  -- okSELECT * 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 + -
显示快捷键?