2016-03-16 3 views
3

У меня возникла проблема с тем, как установить новый столбец в уникальный, используя Oracle 11g.Oracle 11g - добавить новый столбец и установить как уникальный

Я пытаюсь использовать этот код, но получаю ошибку:

ALTER TABLE QAS_ASSIGNED_STATE ADD UNIQUE (cuid); 
+0

Вы пытаетесь добавить новый столбец (CUID) к столу. Эта колонка должна иметь уникальное ограничение? – jarlh

+0

Возможный дубликат [Как использовать ALTER TABLE, чтобы добавить новый столбец и сделать его уникальным?] (Http://stackoverflow.com/questions/3734891/how-to-use-alter-table-to-add-a- new-column-and-make-it-unique) – Chrisrs2292

+0

@jarlh Я не очень уверен. Но я знаю, что таблица уже имеет уникальный идентификатор (ID) –

ответ

2

Вы должны определить тип столбца. Как это:

alter table 
    QAS_ASSIGNED_STATE 
add 
    cuid number NULL; 

, а затем добавить ограничение:

ALTER TABLE QAS_ASSIGNED_STATE ADD CONSTRAINT constraint_cuid UNIQUE (cuid); 
+0

Можете ли вы добавить столбец NOT NULL без значения по умолчанию? – jarlh

+0

Только если ваш стол пуст. Вы правы, я это исправит. Спасибо –

+0

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