как добавить последовательность к первичному ключу в plSQL - PullRequest
0 голосов
/ 26 февраля 2019

Я использую pl sql developer 12. Я хочу добавить последовательный первичный ключ make, используя окна и формы oracle 12 ', а не через сценарии.Я не могу узнать как?Кроме того, как я могу сделать однозначное отношение между 2 таблицами (пользователь, роль), в пользовательской таблице я добавил role_id в качестве внешнего ключа;но отношение кажется многим !!!

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

@Mureinik уже сказал, что в Oracle 12 и более поздних версиях вы можете определить свой столбец первичного ключа как NUMBER GENERATED ALWAYS AS IDENTITY, чтобы получить уникальное последовательное значение.

Для принудительного установления однозначного отношения вбазе данных вы хотите, чтобы ваш столбец ROLE_ID был определен как первичный ключ в одной таблице и как ключ UNIQUE или PRIMARY во второй таблице с отношением внешнего ключа между таблицами.Другими словами:

CREATE TABLE T1 (ROLE_ID  NUMBER
                   CONSTRAINT PK_T1
                     PRIMARY KEY
                 ...);

CREATE TABLE T2 (ID_T2    NUMBER
                   PRIMARY KEY,
                 ROLE_ID  NUMBER
                   CONSTRAINT T2_U1
                     UNIQUE
                   CONSTRAINT T2_FK1
                     REFERENCES T1(ROLE_ID)
                       ON DELETE CASCADE,
                 ...);

После того, как вышеупомянутое ROLE_ID будет первичным ключом на T1, уникальный ключ на T2, и T2.ROLE_ID будет внешним ключом к T1.

Удачи.

0 голосов
/ 08 марта 2019

что я наконец сделал, так это то, что я скачал sql developer 64 w и с него;Я соединился с базой данных, затем я сделал столбец последовательным

0 голосов
/ 26 февраля 2019

В Oracle 12c и выше вы определяете этот столбец как identity столбцы:

CREATE TABLE mytable (
  id          NUMBER GENERATED ALWAYS AS IDENTITY,
  -- other columns ... 
);
...