2017-02-19 1346 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。你的解决方案已经奏效 –