如何在一个有数据的表中插入一列?

[复制链接]
查看11 | 回复9 | 2006-2-14 08:33:40 | 显示全部楼层 |阅读模式
想插入一列id(在表的最前面),但oracle中只能在最后插入,好象不能指定插入的位置啊!?请各位高手解答一下!
谢谢!
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
最初由 eingmarra 发布
[B]想插入一列id(在表的最前面),但oracle中只能在最后插入,好象不能指定插入的位置啊!?请各位高手解答一下!
谢谢! [/B]

Online Table Redefinition
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
最初由 hrb_qiuyb 发布
[B]
Online Table Redefinition [/B]

斑竹能说得明白点么?俺也关注
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层



不懂啊,老大!
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
Online Table Redefinition
翻译为联机重组。
通过DBMS_REFEFINITION中包装的过程提供对表进行联机重组的方法。它允许根据自己需要的新结构来建立一个临时表,然后原始表迁移数据到临时表,临时表完成后锁定原始表,2表名互换。
详细步骤参考PL/SQL package reference
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
但Online Table Redefinition 有时会改为某些表的属性,如NOT NULL限制没了,要小心核对!
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
不过这种需求,按照tom大叔在effective oracle by design中的建议,直接在原表添加字段到末尾,然后创建视图更好。
尤其是表数据量很大,或者结构还可能变化的情况。
当然自己测试随便折腾,就无所谓了。
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
也就是说象我这样的菜鸟,要想保险,只能在最后追加字段了吗?
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
最初由 eingmarra 发布
[B]也就是说象我这样的菜鸟,要想保险,只能在最后追加字段了吗? [/B]

如果你看了DBMS_REDEFINITION包的说明还不会的话。。。
不过你如果自己学习的环境,删掉表重新建也无所谓。
回复

使用道具 举报

千问 | 2006-2-14 08:33:40 | 显示全部楼层
谢谢,我知道了,这个表最好不动,虽然有备分的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行