在原有表的基础上生成一张新表,在生成的过程中修改列名,然后DROP掉原来的表,在把表名该回来。
create table New_table as
select Col1,...,in new_col,... from YouTable;
drop table YouTable;
rename New_table to YouTable ;
create table New_table as
select Col1,...,in new_col,... from YouTable;
drop table YouTable;
rename New_table to YouTable ;
解决方案 »
- 请教大家 ,我有一张表 ,如何知道哪些表依赖这张表 ,谢谢
- 数据库的转换
- oracle配置问题,急~!
- 关于update 的一个问题????
- 请教一下,这条sql语句应该怎么写?
- 连续时间段统计问题
- 打开SQL*plus worksheet时,窗口闪一下就消失了,不知道是怎么回事?
- 在sql中如何查询表空间?
- 急啊,高手帮忙?这个select 语句该怎么写?
- oracle中oracle management server的问题
- 新手入门级问题,关于字母大小写的查询问题,譬如说ABC,abc,Abc,AbC这些类似的数据,我想一次就能都查询出来,怎么写这个语句?
- 如何看oracel上的一个存储过程执行了多长时间了(或进度情况)?
create table table_a as select * from your_table;
drop table your_table;
create table your_table 所有結構和原先一致,把IN欄位改成其他的
在將表table_a種的數據插入your_table如果版本夠的話,可以直接用rname來更改
如果数据太大的话.
也可以直接加一个字段.
如; alter table tablename add(b varchar2(20));
然后让新的字段的值等于旧值. 原字段保留.
update tablename set b=oldcol;
SQL> desc a1;
名称 是否为空 类型
------------------------------- -------- ----
ID VARCHAR2(12)
NUM NUMBER(2)
D DATE
SL1 NUMBER(4)
SL2 NUMBER(4)
SL3 NUMBER(4)如果需要改sl3列名(就是你的in列),则先建立一个临时表,如b1,数据完全同a1
SQL> create table b1 as select id,num,d,sl1,sl2,sl4 from a1;
SQL> desc a1;
Ãû³Æ ÊÇ·ñΪ¿Õ£¿ÀàÐÍ
------------------------------- -------- ----
ID VARCHAR2(12)
NUM NUMBER(2)
D DATE
SL1 NUMBER(4)
SL2 NUMBER(4)
SL4 NUMBER(4)最后,删除表a1,重新命表名
SQL> rename b1 to a1;±íÒÑÖØÃüÃû¡£SQL> desc a1;
Ãû³Æ ÊÇ·ñΪ¿Õ£¿ÀàÐÍ
------------------------------- -------- ----
ID VARCHAR2(12)
NUM NUMBER(2)
D DATE
SL1 NUMBER(4)
SL2 NUMBER(4)
SL4 NUMBER(4)
create table t2 (...,aa,...)as select * from t1;
drop table t1;
rename t2 to t1;