Какие шаги мы должны выполнить при изменении типа данных первичного ключа в oracle sql - PullRequest
0 голосов
/ 16 июня 2020

У меня есть таблица, похожая на эту.

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

с некоторыми значениями в таблице.

Я хочу изменить тип данных первичного ключа customer_id на NUMBER(10, 0). Итак, какие шаги мы выполняем перед выполнением команды ALTER? (Этот столбец не упоминается как внешний ключ ни в одной таблице)

В частности,

У нас есть индекс по первичному столбцу по умолчанию в oracle SQL. Так следует ли нам отказаться от ограничения первичного ключа, а затем выполнить команду ALTER? И какие еще соображения нам нужно сделать?

1 Ответ

4 голосов
/ 16 июня 2020

В случае, подобном вашему, вам не нужно ничего делать - просто сделайте это :

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>

Но, если бы вам пришлось сделать столбец меньше или изменить его тип данных - это отдельная история. Тебе повезло, а не тебе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...