0

我创建了两个表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

我现在必须在第二张桌子上更改什么?

4

2 回答 2

2

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

但是,您的脚本现在已经过时了 - 如果您想在某个地方再次使用该脚本,您需要修复其中对 PRODUCT_TYPE 的所有引用。

于 2013-09-25T14:17:57.853 回答
1

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

于 2013-09-25T14:30:20.020 回答