【问题标题】:Trigger default value of a column during UPDATE在 UPDATE 期间触发列的默认值
【发布时间】:2018-07-13 03:15:22
【问题描述】:

我想知道 Oracle 12c 的这个案例;

  1. 表 X 有 A 列,默认值为 'default'NOT NULL 修饰符
  2. 我在表 X 中插入了一个新行,A 列的值为 'not-default'
  3. 我希望将上面一行的A列更新为给定列的默认值,即'default'

是否有在不知道默认值的情况下执行此操作的捷径?我可以做类似的事情吗;

UPDATE X SET A = DEFAULT_VAL(A) WHERE ...

尝试更新为null显然会触发ORA-01407: cannot update ("schema"."X"."A") to NULL,我想知道Oracle上是否有这样的功能。

【问题讨论】:

    标签: oracle sql-update oracle12c


    【解决方案1】:

    我们可以在更新和插入语句中使用默认关键字。 例如

     update x set A = default where ...
    

    这将对您的情况有所帮助,并且在另一种情况下,例如我不想在插入语句中添加列子句,例如

    insert into table values (val1, val2, default);
    

    如果我们不能使用默认,那么我们必须添加列子句,相同的查询将如下所示

    insert into table (col1, col2, col3) values (val1, val2, default);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多