Как создать несколько первичных индексов для таблицы? - PullRequest
0 голосов
/ 03 марта 2020

Мне интересно, если для создания первичного ключа для нескольких столбцов используется тот же формат, что и для создания первичного индекса для нескольких столбцов, как показано ниже? Допустим, я хочу иметь два основных индекса для таблицы ниже, это правильно?

CREATE TABLE sample_1
 (col_a INT
 ,col_b INT
 ,col_c INT)
 PRIMARY INDEX (col_b, col_c);

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Вы не можете иметь два первичных индекса в Teradata, PI аналогичен кластерному индексу в других СУБД. Может быть только один!

PK определен как часть определения столбца:

CREATE TABLE sample_1
 (col_a INT
 ,col_b INT NOT NULL
 ,col_c INT NOT NULL
 ,PRIMARY KEY (col_b, col_c)); -- UPI

В этом случае он будет реализован как Уникальный Первичный индекс .

Если вы добавите и PI, и PK, PK будет реализован как Уникальный вторичный индекс , например,

CREATE TABLE sample_1
 (col_a INT
 ,col_b INT NOT NULL
 ,col_c INT NOT NULL
 ,PRIMARY KEY (col_b, col_c)) -- USI
PRIMARY INDEX (col_a);        -- NUPI
0 голосов
/ 03 марта 2020

Как насчет создания 2 таблиц и установки первичного ключа 1-го на внешний ключ второй и наоборот?

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