2017-02-13 11 views
0

Я пытаюсь создать первичный ключ с автоматической инкрецией для таблицы, но мне не повезло. Это в Oracle 11g, и я серьезно пропустил команду Auto-increment MySQL. PrimkeyID - это столбец, который я пытаюсь использовать в качестве первичного ключа. Это таблица пересечений для отношений многих и многих. Во всяком случае, ошибка говорит о том, что я пропускаю ключевое слово только в начале первичной ключевой скобки. Также у меня нет уровня привилегий, необходимых для создания триггеров, которые, как представляется, важны для увеличения в Oracle.Попытка автоматического увеличения в Oracle 11g

create table SITE_JUNC 
(
primkeyID number, 
FKsuperpave varchar(30), 
FKcont_mix varchar(30), 
) 
; 
alter table site_junc 
add constraint primary key(create sequence primkeyID incement by 1), 

add constraint FKsuperpave foreign key(mix_id_superpave) 
references SMGR_CONT_MIX(ContMix), 

add constraint FKcont_mix foreign key(mix_id_cont_mix) 
references SUPERPAVE(SuperMix) 
+1

Возможный дубликат [Auto Increment for Oracle] (http://stackoverflow.com/questions/9733085/auto-increment-for-oracle) –

+0

@a_horse_with_no_name да Я только что посмотрел этот пост минуту назад, и я не знаю, t имеют возможность выполнять триггеры. Я аналитик, и у меня нет уровня привилегий. –

+0

Тогда вам не повезло с Oracle 11, но если вы можете создавать таблицы, вы также можете создавать триггеры. Что происходит, когда вы пытаетесь создать триггер? –

ответ

1

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

Create sequence seq_table; 

Затем, в заявлении вставки, используйте seq_table.nextval (или с использованием триггеров). Если вам не нравится это решение, вы можете использовать GUID (я лично не нравится):

create table SITE_JUNC 
(primkey number RAW(16) DEFAULT SYS_GUID() PRIMARY KEY, 
....) 

Запуск Oracle 12c, у вас есть столбцы Identity.

+0

У Renato Afonso, который имеет смысл, спасибо, что дайте ему шанс –

+0

Я бы порекомендовал последовательность над GUID – BobC