我在 Oracle 11g 中创建一个表,其中一列使用默认值。语法是:
create table xyz(emp number,ename varchar2(100),salary number default 0);
这样就创建成功了。由于某些原因,我需要创建另一个具有相同旧表结构和数据的表。所以我创建了一个名为的新表abc
as
create table abc as select * from xyz.
这里“abc”已成功创建,其结构和数据与旧表相同xyz
。但对于旧表“xyz”中的“薪水”列,默认值设置为“0”。但在新创建的表“abc”中未设置默认值。
这一切都在 Oracle 11g 中。请告诉我未设置默认值的原因以及如何使用 select 语句设置它。
您可以在 CREATE TABLE AS SELECT 中指定约束和默认值,但语法如下
create table t1 (id number default 1 not null);
insert into t1 (id) values (2);
create table t2 (id default 1 not null)
as select * from t1;
也就是说,它不会继承源表/选择的约束。仅数据类型(长度/精度/小数位数)由选择确定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)