powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PK, использующий локально-секционированный индекс
5 сообщений из 5, страница 1 из 1
PK, использующий локально-секционированный индекс
    #39965526
Ivanco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть вопрос, сходу в интернетах не смог найти разъяснения.

Создаю секционированную таблицу, уникальный локально-секционированный индекс, и констрейнт PK
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
-- Создаем таблицу
CREATE TABLE TST_TABLE
(
   ID     INTEGER,
   NAME   VARCHAR2 (4000 BYTE)
)
PARTITION BY RANGE (ID)
   INTERVAL ( 1000 )
   (PARTITION P_INITIAL VALUES LESS THAN (1000));

-- Создаем уникальный индекс
CREATE UNIQUE INDEX PK$TST_TABLE
   ON TST_TABLE (ID)
   LOCAL;

-- Создаем ограничение Первичный ключ
ALTER TABLE TST_TABLE ADD (
  CONSTRAINT PK$TST_TABLE
  PRIMARY KEY
  (ID)
  USING INDEX PK$TST_TABLE
  ENABLE VALIDATE);


При создании констрейнта, мы явно говорим, какой индекс использовать: USING INDEX PK$TST_TABLE

Все нормально создается.
Но при просмотре кода таблицы, я вижу код констрейнта:
Код: plsql
1.
2.
3.
4.
5.
6.
ALTER TABLE ENGINE.TST_TABLE ADD (
  CONSTRAINT PK$TST_TABLE
  PRIMARY KEY
  (ID)
  USING INDEX LOCAL
  ENABLE VALIDATE);


Т.е. в части использования индекса указана конструкция: USING INDEX LOCAL

Что это за конструкция, и почему нет явного указания индекса? При том, что я его явно указывал при создании констрейнта.
Как понять, какой индекс используется констрейнтом при такой конструкции?
...
Рейтинг: 0 / 0
PK, использующий локально-секционированный индекс
    #39965556
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanco
Как понять, какой индекс используется констрейнтом при такой конструкции?


одноимённый, уникальный, совпадающий по полям, находящийся в дефолтном тейблспейсе
...
Рейтинг: 0 / 0
PK, использующий локально-секционированный индекс
    #39965624
Ivanco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А дело в том, что даже если создаю не одноименный индек с, результат тот же.
Поэтому не понятно, почему не указывается индекс, который используется констрэйнтом.

Поэкспериментировал - если таблица не секционированная , наименование индекса в констрэйнте указывается в любом случае (хоть он одноименный, хоть нет).

И еще вопрос.
Как в случае с секционированной таблицей задать создание констрэйнта PK, прямо в конструкции CREATE TABLE?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE TST_TABLE
(
   ID     INTEGER,
   NAME   VARCHAR2 (4000 BYTE),
   CONSTRAINT PK$TST_TABLE PRIMARY KEY (ID)
)
PARTITION BY RANGE (ID)
   INTERVAL ( 1000 )
   (PARTITION P_INITIAL VALUES LESS THAN (1000));


Эта конструкция создаст и уникальный индекс, и констрэйнт. Но, индекс будет глобальный. А мне нужно чтобы он был создан локально-секционированным.
...
Рейтинг: 0 / 0
PK, использующий локально-секционированный индекс
    #39965645
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanco
А мне нужно чтобы он был создан локально-секционированным.


Нужно, так укажи:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE TST_TABLE
(
   ID     INTEGER,
   NAME   VARCHAR2 (4000 BYTE),
   CONSTRAINT PK$TST_TABLE PRIMARY KEY (ID)
   USING INDEX
   LOCAL
)
PARTITION BY RANGE (ID)
   INTERVAL ( 1000 )
   (PARTITION P_INITIAL VALUES LESS THAN (1000));



SY.
...
Рейтинг: 0 / 0
PK, использующий локально-секционированный индекс
    #39966020
Ivanco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,

Так и сделал по итогу, просто интуитивно.
Все равно так и не ясно, почему бы не показывать явно используемый индекс
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PK, использующий локально-секционированный индекс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]