2013-08-20 7 views
5

я создал таблицу в Oracle 10g следующим образом:как падение неназванного первичного ключа

CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY, 
StudName VARCHAR2(40) 
); 

И теперь хочет удалить первичный ключ из studId, не опуская эту колонку. Я искал об этом и нашел Dropping unnamed constraints , но это также не могло мне помочь. Не удалось получить таблицу sys.columns или представление.

Благодаря

ответ

0

вопрос, который вы ссылка на ISN для Oracle. Системный вид USER_CONSTRAINTS имеет список всех ограничений. P в столбце CONSTRAINT_TYPE указывает, что это первичный ключ; вы можете использовать это, чтобы найти другие ограничения.

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

Например:

CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY, 
StudName VARCHAR2(40) 
); 

Table created. 


select 'alter table ' || table_name 
     || ' drop constraint ' || constraint_name || ';' 
    from user_constraints 
where table_name = 'STUDENTTBL' 
    and constraint_type = 'P'; 

'ALTERTABLE'||TABLE_NAME||'DROPCONSTRAINT'||CONSTRAINT_NAME||';' 
---------------------------------------------------------------------- 

alter table STUDENTTBL drop constraint SYS_C0017725; 
+0

Да, вы правы. но моя точка ws та же самая логическая вещь, я попытался найти это ограничение. bt не смог получить его. Спасибо за вашу помощь. Не могу голосовать. –

Смежные вопросы