将具有默认值的列添加到oracle中的现有表

时间:2014-06-11 08:26:05

标签: oracle alter

我创建了一个名为books的表格,并在标题中添加了一个专栏' color' 。最初,我在“颜色”列中有空值。现在,当我运行以下查询时:

alter table books modify color default 'blue';  

架构已形成,但在从书籍中选择*时,列颜色中的所有值仍为空。什么是正确的查询?

这是链接: http://sqlfiddle.com/#!4/f4210/1

3 个答案:

答案 0 :(得分:4)

当然。更改表只更改表结构,但不更改内容。新条目将获得默认值。

要更新现有值,请运行sql-update查询,如:

更新书籍设置color ='blue',其中colore为null;

答案 1 :(得分:2)

如果您现在插入表格,那么只会带有默认值。此声明不了解此表的先前内容。在非技术语言中,你告诉oracle现在就这样做了。此语句不会检查旧值。

答案 2 :(得分:0)

alter可以插入下一个值:尝试插入行而不指定列color的值,值应为蓝色。

但这不适用于您只需要更新的现有值:

update books set color = 'blue';