oracle某个表增加或者删除字段,再调整字段顺序,操作参考
2019-03-14 1000 星期四 enAn
-- 2019-03-14 0933 星期四 复制表结构和数据,增加数据
--正式表 wsdl_log
select * from wsdl_log;
-- 创建备份表wsdl_log_int:复制表结构和数据(不会复制表说明和字段说明)
create table wsdl_log_int as select * from wsdl_log;
-- 右键查看正式表结构,复制创建sql和字段说明
drop table wsdl_log;
/*
--删除字段
alter table wsdl_log drop (source);
alter table wsdl_log_int drop (source);
*/
--添加字段
alter table wsdl_log add (source varchar2(100));
--INSERT INTO SELECT语句复制表数据部分列和常值
Insert into Table2(a, c, d) select a,c,5 from Table1
或:Insert into Table2 select * from Table1
--如果字段类型和顺序一致,使用这个
Insert into wsdl_log select * from wsdl_log_int
--如果字段类型和顺序不一致,使用这个:基本是在原表中增加或者删除字段,调整字段顺序使用
/*复制指定字段的值,从一个表到另一个表,基本是操作备份表之间,
* 原表可能加字段了,然后需要调整字段顺序,才这样操作的
*/
insert into wsdl_log
(
id,name,status,in_data,out_data,batch_id,
last_updated_by,last_update_date,created_by,creation_date
)
select id,name,status,in_data,out_data,batch_id,
last_updated_by,last_update_date,created_by,creation_date from wsdl_log_int;
----**********************************************
create table WSDL_LOG
(
ID VARCHAR2(32),
SOURCE VARCHAR2(100),
NAME VARCHAR2(100),
STATUS VARCHAR2(10),
IN_DATA CLOB,
OUT_DATA CLOB,
BATCH_ID VARCHAR2(100),
LAST_UPDATED_BY VARCHAR2(100),
LAST_UPDATE_DATE DATE,
CREATED_BY VARCHAR2(100),
CREATION_DATE DATE,
ATTRIBUTE1 VARCHAR2(1000),
ATTRIBUTE2 VARCHAR2(1000),
ATTRIBUTE3 VARCHAR2(1000),
ATTRIBUTE4 VARCHAR2(1000),
ATTRIBUTE5 VARCHAR2(1000)
);
-- Add comments to the table
comment on table WSDL_LOG is '调用wsdl的日志记录';
-- Add comments to the columns
comment on column WSDL_LOG.ID is '主键';
comment on column WSDL_LOG.SOURCE is '从哪个系统接入';
comment on column WSDL_LOG.NAME is 'wsdl服务';
comment on column WSDL_LOG.STATUS is '状态:0=成功,1=失败';
comment on column WSDL_LOG.IN_DATA is '入参:大数据,clob ';
comment on column WSDL_LOG.OUT_DATA is '反参:大数据,clob';
comment on column WSDL_LOG.BATCH_ID is '批次号,可能后面做业务逻辑处理的时候入库有使用到 ';