gpt4 book ai didi

oracle - 如何在11g中的select语句中为新创建的表的列设置默认值

转载 作者:行者123 更新时间:2023-12-03 11:47:38 25 4
gpt4 key购买 nike

我在Oracle 11g中使用其中一列的默认值创建了一个表。语法是:

create table xyz(emp number,ename varchar2(100),salary number default 0);

创建成功。由于某些原因,我需要创建具有相同旧表结构和数据的另一个表。所以我创建了一个新表,名称为 abc
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;

也就是说,它不会从源表/选择继承约束。选择仅确定数据类型(长度/精度/比例)。

关于oracle - 如何在11g中的select语句中为新创建的表的列设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com