如何更改引用的表

时间:2013-09-25 14:05:02

标签: sql oracle11g oracle10g

我创建了两个表product_typeproduct,其脚本如下:

create table product_type
(
  product_type_id integer constraint product_type_pk primary key,
  name varchar2(10) not null
);


create table product
(
  product_id integer constraint product_id_pk primary key,
  product_type_id integer constraint products_fk_product_types references product_type(product_type_id),
  product_name varchar2(30),
  description varchar2(50),
  price number(5,2)
);

现在假设我将我的第一个表"product_type"重命名为"product_types"

alter table product_type rename to product_types

然后它会对第二个表产生什么影响,因为我在那里引用了一个引用product_type的外键,现在是product_types

我现在需要在第二张表中更改哪些内容?

2 个答案:

答案 0 :(得分:2)

Oracle负责数据库中的第二个表:如果查看SQL Developer或类似工具中的外键详细信息,您将看到该约束现在引用了PRODUCT_TYPES。没有什么可以做的。

但是,脚本现在已过期 - 如果您想再次使用该脚本,则需要修复其中对PRODUCT_TYPE的所有引用。

答案 1 :(得分:1)

对主表没有影响。 oracle处理所有引用表的更改。