2013-08-06 3 views
1

Я пробовал искать эту тему, и мои поиски привели меня в этот формат, который все еще вызывает ошибку. Когда я выполняю свой скрипт, я в основном получаю нагрузку на ошибки ORA-01735 для всех моих более поздних операторов. Я сделал это по-другому, но googling привел меня в этот формат, который все еще не работает. Какие-нибудь советы?Alter Scripts in SQL - ORA 01735

CREATE TABLE table7 
(
column1 int NOT NULL, 
column2 int NOT NULL, 
column3 int NOT NULL 
) 
/

ALTER TABLE table7 

ADD( pk1 PRIMARY KEY(column1), 
    fk1 FOREIGN KEY(column2) REFERENCES Table1(column2), 
    fk2 FOREIGN KEY(column3) REFERENCES Service(column3) 
) 
/
+1

это выглядит как ORA-01735 является кодом ошибки ORACLE, поэтому я добавил тег для оракула. –

+0

"* Какие-нибудь советы? *" - синтаксис подробно описан в руководстве. Не больно читать это ... –

ответ

3

ADD должно охватывать каждое определение столбцов. Вы не обертываете ни одного ADD вокруг трех новых столбцов.

См: http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm#i2183462

Для первичного ключа и ограничения внешнего ключа вам необходимо CONSTRAINT ключевого слова. См.: http://docs.oracle.com/javadb/10.3.3.0/ref/rrefsqlj81859.html Раздел «Добавление ограничений».

EDIT: Это было единственное, что работал на скрипке я попытался:

ALTER TABLE table7 
ADD (
     CONSTRAINT pk1 PRIMARY KEY (column1), 
     CONSTRAINT fk1 Foreign Key (column2) REFERENCES Table1 (column2), 
     CONSTRAINT fk2 Foreign Key (column3) REFERENCES Service (column3) 
    ) 

Вот скрипку: http://sqlfiddle.com/#!4/9d2a3

+0

Спасибо за помощь. Первоначально у меня было это неправильно, и после некоторых поисковых запросов натолкнулся на этот пример https://forums.oracle.com/thread/2148438 Не знаю, как я пропустил ключевые слова Constraints, но по какой-то причине я думал, что они не были необходимы для FK и ПК. С другой стороны, этот пример использует только один ADD? Это неправильно? – Killian

+1

@ Киллиан Следуйте примеру !! Я MySQL/SQLServer dev ;-) Мне просто нравится иногда читать документы ... –

1

Проверьте это:

ALTER TABLE table7 
ADD pk1 PRIMARY KEY(column1), 
ADD fk1 FOREIGN KEY(column2) REFERENCES Table1(column2), 
ADD fk2 FOREIGN KEY(column3) REFERENCES Service(column3) 

См синтаксис и примеры:

http://docs.oracle.com/cd/E17952_01/refman-5.1-en/alter-table.html

http://docs.oracle.com/cd/E17952_01/refman-5.1-en/alter-table-examples.html

+0

Я не могу заставить это работать в скрипте, который я использовал (Oracle 11g). –

+1

Ваши ссылки на ** MySQL **, то есть не Oracle. –

-1

ALTER TABLE table7 ADD ( CONSTRAINT pk1 PRIMARY KEY (COLUMN1), CONSTRAINT fk1 внешнего ключа (column2) Лит Table1 (COLUMN2), CONSTRAINT ФК2 внешнего ключа (колонка3) ЛИТЕРАТУРЫ службы (колонка3) )

это работает для меня .THANKS