Amazon Redshift中存在类似SQL Server中的表切换功能,称之为交换分区(swapping partitions)。
交换分区是在一个操作中将两个表的位置进行交换,因此,交换分区不是像SQL Server中的表切换仅仅是将数据表名进行改变。交换分区需要注意几个关键点:
以下代码示例展示了如何在Amazon Redshift中进行交换分区:
--创建分区表 CREATE TABLE partition_table ( id INT, value VARCHAR(50) ) DISTSTYLE EVEN;
--分区表插入数据 INSERT INTO partition_table VALUES (1, 'A'), (2, 'B'), (3, 'C');
--创建分区备份表 CREATE TABLE partition_backup ( id INT, value VARCHAR(50) ) DISTSTYLE EVEN;
--分区备份表插入数据 INSERT INTO partition_backup VALUES (4, 'D'), (5, 'E'), (6, 'F');
--交换分区 BEGIN; --交换分区 ALTER TABLE partition_table EXCHANGE PARTITION FOR VALUES IN (1) WITH TABLE partition_backup;
--交换备份分区
ALTER TABLE partition_backup
EXCHANGE PARTITION FOR VALUES IN (4)
WITH TABLE partition_table;
COMMIT;
--确认交换结果 SELECT * FROM partition_table; --4, 'D', 5, 'E', 6, 'F' SELECT * FROM partition_backup; --1, 'A', 2, 'B', 3, 'C'
上一篇:AmazonRedshift是否像SQLServer一样有表切换功能?
下一篇:AmazonRedshift数据库出现协议错误。“错误:在PortalSuspended状态下无效的协议序列'P'。”