首页 > 解决方案 > 使用数据创建表的副本而不记录

问题描述

有没有一种简单的方法可以将表的数据复制到具有不同表名的同一个数据库而无需记录。

CREATE TABLE SCHEMA.NEW_TB LIKE SCHEMA.OLD_TB;插入 SCHEMA.NEW_TB (SELECT * FROM SCHEMA.OLD_TB);

上述 2 条语句将起作用,但该表包含大量数据。那么是否可以在不记录的情况下复制数据?

标签: databasedb2

解决方案


在会话中关闭自动提交的情况下使用以下内容:

CREATE TABLE SCHEMA.NEW_TB LIKE SCHEMA.OLD_TB; 
COMMIT;

ALTER TABLE SCHEMA.NEW_TB ACTIVATE NOT LOGGED INITIALLY;
INSERT INTO SCHEMA.NEW_TB 
SELECT * FROM SCHEMA.OLD_TB;
COMMIT;

在同一事务中使用ALTER TABLE和很重要。INSERT


推荐阅读