oracle怎么样休改表名和字段名

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
在oracle8i中怎么样休改表名和字段名
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
创建新的 用原来表的数据
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
create table NEWNAME as select* from OLDNAME
如果有long型字段改用IMP EXP
修改字段名不可以直接进行
要先DROP
在ADD
如果只要改表名
可以用rename OLDNAME to NEWNAME
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
rename table_oldname to table_newname;
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
修改表明直接rename就可以了。
修改字段名只能add, drop.
create table as select会造成原来标上的一些约束信息丢失。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢各位的回答和提醒
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
我认为他/她是在问如何使用 alter 语句吧。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
给你一个比较复杂的例子但是很有实用价值的:
LOCK TABLE ROLEINFO IN EXCLUSIVEMODE ;

--Make backup copy of original table

RENAMEROLEINFO TO ROLEINFO_X ;

--drop fKey constraint from KAIMU.ROLEFUNCTION
ALTER TABLE KAIMU.ROLEFUNCTION DROP CONSTRAINT FK_ROLEFUNCTION_ROLENAME ;
--drop fKey constraint from KAIMU.USERROLE
ALTER TABLE KAIMU.USERROLE DROP CONSTRAINT FK_USERROLE_ROLENAME ;

--Remove all other NAMED Table Constraints because
--they will cause errors when re-creating the table

--Remove original Primary Key now that FKeys are dropped

ALTER TABLE KAIMU."ROLEINFO_X" DROP CONSTRAINT PK_ROLEINFO_ROLENAME ;

--Recreate original table

CREATE TABLE KAIMU.ROLEINFO (
ROLENAMEVARCHAR2 (32)NOT NULL,
DESCRIBEVARCHAR2 (100) )
TABLESPACE PARTSBASE PCTFREE 10
STORAGE(INITIAL 52K NEXT 52K PCTINCREASE 1 ) ;

-- Copy the data from the renamed table

Insert into KAIMU."ROLEINFO" (
ROLENAME, DESCRIBE )
SELECT
ROLENAME, DESCRIBE
FROM KAIMU."ROLEINFO_X" ;
Commit ;
--Recreate indexes EXCLUDING those created via Unique Constraints

--Recreate indexes EXCLUDING those created via Unique Constraints


-- Recreate the PKey Constraint

ALTER TABLE KAIMU."ROLEINFO" ADD
CONSTRAINT PK_ROLEINFO_ROLENAME
PRIMARY KEY ( ROLENAME )
USING INDEXPCTFREE 10
STORAGE(INITIAL 53248 NEXT 53248 PCTINCREASE 1 )
TABLESPACE PARTSBASE;

-- Recreate the FKey Constraints from the NEW table


-- Grant any privs associated with the old table


-- Recreate the FKey Constraints that reference the NEW table

ALTER TABLE KAIMU.ROLEFUNCTION ADD
CONSTRAINT FK_ROLEFUNCTION_ROLENAME
FOREIGN KEY (ROLENAME)
REFERENCES KAIMU.ROLEINFO (ROLENAME)
ON DELETE CASCADE ;
ALTER TABLE KAIMU.USERROLE ADD
CONSTRAINT FK_USERROLE_ROLENAME
FOREIGN KEY (ROLENAME)
REFERENCES KAIMU.ROLEINFO (ROLENAME)
ON DELETE CASCADE ;

-- Recompile any dependent objects

ALTER PACKAGEKAIMU.PRIVILEGEMANAGER COMPILE PACKAGE ;
--*** Recompile triggers for the new table
可以在CREATETABLE中做改动
不妨试一试,最好是将此作为一个事务提交
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
嘿嘿,好像是Toad生成的?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢lmh,非常感谢
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行