我创建了一个名为- books的表,其中有一列的标题为'color'。最初,我在列'color'中有空值。现在,当我运行以下查询时:
alter table books modify color default 'blue';
模式已形成,但在从书籍中执行select * 时,列颜色中的所有值仍然为空。要触发的正确查询是什么?以下是链接:http://sqlfiddle.com/#!4/f4210/1
w46czmvw1#
当然。Alter table只改变了表的结构而不改变内容。新条目将得到默认值。要更新现有值,请运行如下所示的sql-update查询:更新书籍设置color ='blue',其中colore为空;
bsxbgnwa2#
如果您现在插入到表中,则只会带有默认值。此语句不知道此表以前的内容。在非技术语言中,您是在告诉oracle现在就这样做。此语句不会检查旧值。
z9zf31ra3#
alter适用于要插入的下一个值:尝试插入行而不指定列color的值,值应为蓝色。但这对现有值不起作用,您只需要更新这些值:
alter
color
update books set color = 'blue';
fzwojiic4#
hi此查询将用于在oracle的现有表中添加具有默认值的列。
alter table <table_name> add <column_name> <contraint> default <default_value> not null;
示例:
alter table books add record_status number(1,0) default 1 not null; alter table books add color varchar(20) default 'blue' not null;
4条答案
按热度按时间w46czmvw1#
当然。Alter table只改变了表的结构而不改变内容。新条目将得到默认值。
要更新现有值,请运行如下所示的sql-update查询:
更新书籍设置color ='blue',其中colore为空;
bsxbgnwa2#
如果您现在插入到表中,则只会带有默认值。此语句不知道此表以前的内容。在非技术语言中,您是在告诉oracle现在就这样做。此语句不会检查旧值。
z9zf31ra3#
alter
适用于要插入的下一个值:尝试插入行而不指定列color
的值,值应为蓝色。但这对现有值不起作用,您只需要更新这些值:
fzwojiic4#
hi此查询将用于在oracle的现有表中添加具有默认值的列。
示例: