数据库教程-Oracle重命名表

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

在本教程中,您将学习如何使用Oracle RENAME语句重命名数据库中的表。

要重命名表,可以使用以下Oracle RENAME表语句,如下所示:

RENAME table_name TO new_name; 

RENAME表语句中:

  • 首先,指定将要重命名的表名称。
  • 其次,指定新的表名。新名称不能与同一模式中的另一个表相同。

当重命名表时,Oracle自动将旧表上的索引,约束和授权转移到新表上。 另外,它使依赖重命名表(原表)的所有对象失效,如视图,存储过程,函数和同义词。

Oracle RENAME表的例子

我们来创建一个名为promotions表,用来作演示。

CREATE TABLE promotions(     promotion_id NUMBER GENERATED BY DEFAULT AS IDENTITY,     promotion_name varchar2(255),     start_date DATE NOT NULL,     end_date DATE NOT NULL,     PRIMARY KEY(promotion_id),     CHECK (end_date > start_date) ); 

以下PL/SQL函数通过查询promotions表中的数据来返回促销的数量:

CREATE OR REPLACE FUNCTION count_promotions   RETURN NUMBER IS   v_count NUMBER; BEGIN   SELECT     COUNT( * )   INTO     v_count   FROM     promotions;   RETURN v_count; END; 

要将promotions表重命名为campaigns表,可以使用以下语句:

RENAME promotions TO campaigns; 

如上面所述,Oracle将promotions表中的所有索引,约束和授权转移到campaigns表中。 以下语句显示了从promotions表传输的新campaigns表的限制条件:

SELECT     OBJECT_TYPE,OBJECT_NAME,status FROM     all_objects WHERE     status = 'INVALID' and OWNER='OT' ; 

因为COUNT_PROMOTIONS函数引用了promotions表,所以当重命名promotions表时,COUNT_PROMOTIONS函数变得无效。

要查找当前模式中的无效对象,可以从all_objects视图中查询数据,如下所示:

SELECT     owner,     object_type,     object_name FROM     all_objects WHERE     status = 'INVALID' ORDER BY     object_type,     object_name; 

执行上面查询语句,得到以下结果 –

Oracle重命名表

如上查询结果所示,该语句返回COUNT_PROMOTIONS函数作为无效的对象。

在本教程中,您已学习如何使用Oracle RENAME表语句重命名数据库中的表。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/18/数据库教程-oracle重命名表/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注