【问题标题】:ORA-01735: invalid ALTER TABLE option (While trying to drop DEFAULT on a COLUMN)ORA-01735: 无效的 ALTER TABLE 选项(尝试在列上删除 DEFAULT 时)
【发布时间】:2017-02-19 22:52:24
【问题描述】:

我试图删除 COLUMN sal 的 DEFAULT 约束,即 Oracle 数据库中客户表中的薪水。

我试过的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:

谁能告诉我我做错了什么?

【问题讨论】:

  • 默认约束你的意思是什么?列的默认值(顺便说一下不是约束)?或者是其他东西?如果要删除以前为列指定的默认值。只需将其设置为 NULL。 alter table customer modify sal default null;
  • 你在哪里找到in the manual 的语法?默认值不是“约束”,而是默认值。
  • 除了已经解释过的语法错误之外,您还犯了另一个更严重的错误。在您在这里发帖之前,请尝试自己做一些研究。谷歌“Oracle更改列默认值”或类似的东西;如果您在几分钟内找不到正确答案,然后在此处发布问题。直接在此处发帖表明您没有付出任何努力。

标签: sql oracle ddl


【解决方案1】:

试试这个查询:

ALTER TABLE customer MODIFY sal DEFAULT NULL;

【讨论】:

  • "try this qury" 并不能真正解释为什么会出现 OP 的问题以及为什么你的陈述应该有效。我认为“查询”不是您陈述的正确术语
  • @miracle173 - 总的来说,也许你是对的,但在这种情况下,即使没有任何解释,OP 的尝试也很明显存在语法错误。这里的响应者提供了正确的语法。你反对什么?
  • @batnight 您的解决方案已经奏效。我想弄清楚是否有任何方法可以删除我们为表中的列设置的默认值。将其设置回 null 是一个好方法。
  • @mathguy 例如OP 似乎将约束与默认值混淆了。这可以澄清。描述正确语法的手册链接也很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
相关资源
最近更新 更多