Oracle 数据库 表的复制
方式一:复制表结构及表数据
CREATE TABLE table_new AS SELECT * FROM TABLE_old ;
方式二:只复制表结构
CREATE TABLE table_new AS SELECT * FROM table_old WHERE 1 = 2 ;
注:写 WHERE 1 = 2 是让查询的结果为空,若写成 WHERE 1 = 1 ,则会将 整个表结构及其表数据复制过去
SQL> -- 方式二:只复制表结构
SQL> CREATE TABLE myemp2 AS SELECT * FROM emp WHERE 1 = 2 ;
表已创建。
SQL> -- 查看 myemp2 表结构
SQL> DESC myemp2 ;
名称 是否为空? 类型
----------------------------------------------------------------- -------- -------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
SQL> SELECT * FROM myemp2 ;
未选定行
方式三:只复制表数据
如果两个表结构一样:
INSERT INTO table_new SELECT * FROM table_old ;
如果两个表结构不一样:
INSERT INTO table_new( COLUMN1 , COLUMN2 , COLUMN3 , ... ) SELECT COLUMN1 , COLUMN2 , COLUMN3 , ... FROM table_old ;
SELECT COLUMN1 , COLUMN2 , COLUMN3 , ... FROM table_old ;