在oracle sql中更改主键的数据类型时应遵循哪些步骤

oxf4rvwz  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(457)

我有一张类似的table。

CREATE TABLE customers (
    customer_id NUMBER(7,0) NOT NULL,
    customer_name VARCHAR2(50) NOT NULL,
    CONSTRAINT customers_pk PRIMARY_KEY (customer_id)
);

表中有一些值。
我想更改主键的数据类型 customer_idNUMBER(10, 0) . 那么在执行 ALTER 命令(此列未在任何表中作为外键引用)
明确地,
在oraclesql中,默认情况下主列上有一个索引。那么,我们应该放弃主键约束,然后执行 ALTER 命令?还有其他需要考虑的吗?

rm5edbpk

rm5edbpk1#

对于像你这样的情况,你不需要做任何事情,只要做:

SQL> create table customers (
  2  customer_id number(7, 0),
  3  customer_name varchar2(50),
  4  constraint customer_pk primary key (customer_id));

Table created.

SQL> insert into customers
  2  select 1234566, 'Little' from dual union all
  3  select 98876  , 'Foot'   from dual;

2 rows created.

SQL> alter table customers modify customer_id number(8, 0);

Table altered.

SQL> select constraint_name from user_constraints where table_name = 'CUSTOMERS';

CONSTRAINT_NAME
------------------------------
CUSTOMER_PK

SQL>

但是,如果必须使列变小或修改其数据类型,那就另当别论了。你很幸运,不是你的。

相关问题