oracle 创建新表,并复制旧表数据
需求
- 备份数据,用于恢复。
- 备份数据,修改表结构
- 转移数据
语法规则
CREATE TABLE NEW_TAB AS SELECT * FROM OLD_TAB WHERE 1=1;
或者
CREATE TABLE NEW_TAB AS SELECT * FROM OLD_TAB;
我通常的做法是:
- 备份旧表数据到新表
- 清空旧表数据
- 修改旧表结构
- 恢复数据
引申
清空表数据
语法规则
TRUNCATE TABLE OLD_TAB;
修改表结构
语法规则
alter table tablename modify (column datatype [default value][null/not null],….);
例子
ALTER TABLE TEST1 MODIFY (NAME VARCHAR2(16));
创建新表,仅复制表结构,不需要数据。
语法规则
CREATE TABLE NEW_TAB AS SELECT * FROM OLD_TAB WHERE 1=0;