请教:在alter table时可以将一个新列加到指定列后面么?

随风来去 2004-04-14 10:33:16
rt
...全文
446 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoqingyun 2004-04-14
  • 打赏
  • 举报
回复
在oracle中可以加列的。记忆中是用modify tablename add columnname,这种简单的问题查一下相关的参考书就知道了
随风来去 2004-04-14
  • 打赏
  • 举报
回复
Ok,谢谢
bzszp 2004-04-14
  • 打赏
  • 举报
回复
先备份以下表数据。
create table tbname2 as select colname1,colname2,'datanew' colnamenew,colname3...
from tbname1;
drop table tbname1;
rename tbname2 to tbname1;
welyngj 2004-04-14
  • 打赏
  • 举报
回复
假如把c列加到表tbl1 (a,b)的a列后。 c的数据类型是varchar(30)
create table tbl2 as select a, '',c,b from tbl1
alter table tbl2 drop column b
随风来去 2004-04-14
  • 打赏
  • 举报
回复
那有什么比较简便的方法实现该功能呢?
welyngj 2004-04-14
  • 打赏
  • 举报
回复
没有那样的功能
welyngj 2004-04-14
  • 打赏
  • 举报
回复
SQL> desc s;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
A NUMBER(38)
B NUMBER(38)
C NUMBER(38)
SQL> ed
已写入文件 afiedt.buf

1* alter table s modify a number(3) add d number(4)
SQL> /

表已更改。

SQL> desc s;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
A NUMBER(3)
B NUMBER(38)
C NUMBER(38)
D NUMBER(4)
事实证明 alter table .. modify...add 也不能实现在某一列的中间加一列。
随风来去 2004-04-14
  • 打赏
  • 举报
回复
如果觉得这个问题简单的话,请提出一个不需要创建新表的方案好么?或者一条SQL语句可以搞定?
愿意为此多加分,谢谢

我对ADD和Modify的理解如下,不知道对否?
在表的后面增加一个字段
ALTER TABLE表名 ADD 字段名 字段名描述;

修改表里字段的定义描述
ALTER TABLE表名 MODIFY字段名 字段名描述;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧