2013-05-31 107 views
1

我想修改一個外鍵的更新選項。 爲此,我執行該命令:修改外鍵時無效的alter table選項

alter table testusers.ORDERS 
DROP CONSTRAINT ORDER_FK_2, 
ADD CONSTRAINT ORDER_FK_2 FOREIGN KEY(FK_PRODUCER_ID) REFERENCES testuser.PRODUCER  (producer_id) 
ON UPDATE CASCADE ON DELETE CASCADE; 

如果我執行這一點,有以下錯誤:

SQL-Fehler: ORA-01735: Ungültige Option ALTER TABLE 
01735. 00000 - "invalid ALTER TABLE option" 
+3

您將需要兩個[alter table](http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#i2103997)命令。 –

回答

3

有根據文檔語法圖http://docs.oracle.com/cd/B28359_01/server.111/b28286/clauses002.htm#CJAEDFIB

爲ALTER TABLE沒有逗號分隔的列表
create table orders(order_id number, fk_producer_id number, CONSTRAINT order_pk PRIMARY KEY (order_id)); 

create table producer(producer_id number, CONSTRAINT producer_pk PRIMARY KEY (producer_id)); 

alter table orders 
    ADD CONSTRAINT ORDER_FK_2 FOREIGN KEY(FK_PRODUCER_ID) 
    REFERENCES PRODUCER  (producer_id) ; 

alter table orders 
DROP CONSTRAINT ORDER_FK_2; 

alter table orders 
    ADD CONSTRAINT ORDER_FK_2 FOREIGN KEY(FK_PRODUCER_ID) 
    REFERENCES PRODUCER  (producer_id) ; 

啊,是的,我也找不到任何ON UPDATE CASCADE語法。但我相信你現在可以解決它。否則,請刪除一些評論或發佈新問題。

+0

就是這樣!謝謝 –