2016-05-05 3 views
1

у меня есть таблица ...Oracle SQL: Создание первичного ключа из созданного поля

Name  Null Type   
--------- ---- ------------ 
BOOK_CODE  VARCHAR2(26) 
AUTHOR_ID  NUMBER(2)  
SEQUENCE  NUMBER(1) 

Это уже было создано, как бы я идти о том, чтобы BOOK_CODE первичный ключ? Единственный способ, который я могу найти, - это удалить поле, а затем заменить его, но я потеряю все данные, которые я ему вложил.

Любые идеи?

+0

, казалось, работал для меня. создать таблицу mytable (book_code varchar (26), author_id number (2), порядковый номер (1)); Вставить в mytable (book_code, author_id, sequence) значения ('a', 1, 1); ALTER TABLE mytable ADD CONSTRAINT PK_ID ПЕРВИЧНЫЙ КЛЮЧ (book_code); –

ответ

2
ALTER TABLE <TABLENAME> ADD CONSTRAINT pk_book_code PRIMARY KEY(book_code); 

Для внешних ключей:

ALTER TABLE table_name 
ADD CONSTRAINT constraint_name 
    FOREIGN KEY (column1, column2, ... column_n) 
    REFERENCES parent_table (column1, column2, ... column_n); 
+0

Как сделать ключ forieng? так же? –

+0

Удивительно, и как бы я мог видеть, правильно ли установлены мои ключи? –

+0

Какой инструмент вы используете для запуска скриптов? Если вы используете SQLPlus, вы можете попробовать этот запрос: выберите * из SYS.USER_CONSTRAINTS. Перечислите все ограничения, которые могут видеть зарегистрированные пользователи. –

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