Невозможно установить отсортированный индекс ASC в поле первичного ключа в Oracle - PullRequest
1 голос
/ 21 марта 2012

Когда я пытаюсь добавить отсортированный индекс ASC в поле MyId, инструмент разработчика oracle sql говорит:

Index MyIdSortedIndex is defined identically to constraint PK_MyTable


CREATE TABLE MyTable 
   (    "MyId" NVARCHAR2(50), 
    "DESCRIPTION" NVARCHAR2(200), 
     CONSTRAINT "PK_MyTable" PRIMARY KEY ("MyId")  
   )

Как мне установить отсортированный индекс ASC для моих таблиц Первичный ключ MyId в Oracle?

1 Ответ

2 голосов
/ 21 марта 2012

Это говорит о том, что вам не нужен новый индекс, потому что у вас уже есть индекс с именем "PK_MyTable" в "MyId" в порядке возрастания. Когда вы добавляете ограничение первичного ключа к таблице, Oracle автоматически добавляет индекс с тем же именем, чтобы помочь в его применении, индексируя столбцы ограничения в порядке возрастания (поскольку направление по умолчанию является восходящим).

Если вы не хотите использовать индекс Oracle, созданный автоматически, вы можете сделать это:

CREATE TABLE MyTable 
   (    "MyId" NVARCHAR2(50), 
    "DESCRIPTION" NVARCHAR2(200), 
   );

CREATE INDEX MyIdSortedIndex ON MyTable ("MyId" ASC);

ALTER TABLE MyTable Add CONSTRAINT "PK_MyTable" PRIMARY KEY ("MyId");

Поскольку ваш индекс уже существует при добавлении первичного ключа, Oracle будет использовать его вместо создания собственного.

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