2017-02-19 1342 views
1

我試圖在COLUMN sal上刪除DEFAULT約束,即Oracle數據庫中的customer表中的薪水。ORA-01735:無效ALTER TABLE選項(嘗試刪除列上的DEFAULT)

我試過SQL語句,是我收到

ALTER TABLE customer ALTER COLUMN sal DROP DEFAULT; 

錯誤消息是

ALTER TABLE customer ALTER COLUMN sal DROP DEFAULT 
Error report - 
SQL Error: ORA-01735: invalid ALTER TABLE option 
01735. 00000 - "invalid ALTER TABLE option" 
*Cause:  
*Action: 

誰能告訴我,這是我現在乾的錯誤呢?

+0

,並且默認約束你的意思究竟是什麼?列的默認值(不是按順序約束)?或者是其他東西?如果您想刪除先前指定的列的默認值。只需將其設置爲NULL即可。 'alter table customer modify sal default null;' –

+0

[**在手冊**中](https://docs.oracle.com/database/121/SQLRF/statements_3001.htm)您是否找到該語法?默認值不是「約束」,它是默認值。 –

+0

除了已經解釋過的語法錯誤外,您還犯了另一個更嚴重的錯誤。在你發佈之前,請嘗試自己做一些研究。谷歌「Oracle更改列默認」或類似的東西;如果在幾分鐘內找不到正確的答案,請在這裏發佈問題。在這裏直接發帖顯示你沒有努力。 – mathguy

回答

2

嘗試此查詢:

ALTER TABLE customer MODIFY sal DEFAULT NULL; 
+0

「試試這個問題」並不是解釋爲什麼OP的問題發生,爲什麼你的陳述應該起作用。我認爲「查詢」並不是你的陳述的正確名詞 – miracle173

+2

@ miracle173 - 也許你是對的,但在這種情況下,即使沒有任何解釋,OP的嘗試有語法錯誤也是顯而易見的。這裏的響應者提供了正確的語法。你的反對意見是什麼? – mathguy

+0

謝謝@batnight。你的解決方案已經奏效 –