有没有一种简单的方法可以将表复制到同一个数据库,当然具有不同的名称。 我尝试了下面列出的一些,
db2 "CREATE TABLE SCHEMA.NEW_TB COPY AS SELECT * FROM SCHEMA.OLD_TB WHERE 1 = 2"
db2 "SELECT INTO SCHEMA.NEW_TB FROM SCHEMA.OLD_TB"
db2 "SELECT * FROM SCHEMA.OLD_TB INSERT INTO SCHEMA.NEW_TB"
这些都不起作用 我正在使用 db2 v9.5
试试这个:
CREATE TABLE SCHEMA.NEW_TB LIKE SCHEMA.OLD_TB;
INSERT INTO SCHEMA.NEW_TB (SELECT * FROM SCHEMA.OLD_TB);
不被复制的选项包括:
你必须用括号把选择的部分括起来。
CREATE TABLE SCHEMA.NEW_TB AS (
SELECT *
FROM SCHEMA.OLD_TB
) WITH NO DATA
应该工作。注意所有@Gilbert 说的不会被复制的东西。
我在这里假设 DB2 在 Linux/Unix/Windows 上运行,因为您说的是 DB2 v9.5.
两个步骤都可以:
create table bu_x as (select a,b,c,d from x ) WITH no data;
insert into bu_x (a,b,c,d) select select a,b,c,d from x ;
CREATE TABLE NEW_TABLENAME LIKE OLD_TABLENAME;
适用于 DB2 V 9.7
我们可以将所有列从一个表复制到另一个现有表:
插入表 2 从表 1 中选择 *;
或者我们可以只复制我们想要的列到另一个现有的表中:
插入表 2 (列名) 选择 column_name(s) 从表 1;
或 SELECT * INTO BACKUP_TABLE1 FROM TABLE1
CREATE TABLE SCHEMA.NEW_TB 复制为 (SELECT * FROM SCHEMA.OLD_TB WHERE 1 = 2) 有数据
一直为我工作