`
longgangbai
  • 浏览: 7356124 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle【COLUMN】设置表字段默认值仅对未来生效

 
阅读更多

【COLUMN】设置表字段默认值仅对未来生效
  提问:设置表字段的默认值是否会对已有数据数据进行调整?回答此类问题最有效的方法就是“实践”。设计一个实验进行验证,然后再从原理上进行理解。印象将会深刻。
  回答:设置表字段的默认值不会对已有数据数据进行调整,只会影响未来字段内容。

1.创建测试表T并初始化数据
sec@ora10g> create table t (x number,y number);

Table created.

sec@ora10g> insert into t values (1,null);

1 row created.

sec@ora10g> select * from t;

         X          Y
---------- ----------
         1

2.调整T表的X字段的默认值为5000
sec@ora10g> alter table t modify (y default 5000);

Table altered.

3.验证对现有数据的影响
sec@ora10g> select * from t;

         X          Y
---------- ----------
         1

可见,对原有的Y值没有影响,之前是NULL值,现在仍然是NULL值。

4.测试对新插入的数据的效果
sec@ora10g> insert into t(x) values (2);

1 row created.

sec@ora10g> commit;

Commit complete.

sec@ora10g> select * from t;

         X          Y
---------- ----------
         1
         2       5000

新加入的数据的Y值已经被初始化为默认值5000。

5.小结
  到此,通过一个非常简单的实验便对可能存在的“疑问”以自问自答的形式处理完毕。结论是,当设置表字段的默认值不会对已有数据数据进行调整,只会影响未来字段内容。

分享到:
评论

相关推荐

    mysq与oraclel修改表结构

    修改默认值只对新插入的数据生效,已有数据不受影响。 - **删除表字段**: Oracle提供两种方式:`DROP COLUMN`和`SET UNUSED`。如果字段还有数据,先设置为未使用,然后删除: ```sql ALTER TABLE table_name ...

    Oracle原厂数据库规范.ppt

    但需要注意,initrans每个槽占用24Bytes空间,且不可超过10,同时initrans的修改只对新数据块生效。 3. **列设计**: - 使用`CHAR`类型表示定长字符,`VARCHAR2`表示不定长字符,以提高查询效率。`CHAR`类型会用...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    最全的oracle常用命令大全.txt

    ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...

    02_Oracle_Royallin.pdf

    - **ORACLE_HOME:** 设置为 Oracle 安装路径。 - **ORACLE_SID:** 设置为实例名称。 **1.3 管理工具** - **SQL*Plus:** 命令行工具,用于执行 SQL 语句和脚本。 - **Enterprise Manager:** 图形化管理工具,...

    liquibase API 帮助文档

    通过使用 `update` 参数,可以方便地管理数据库中的各种对象,例如添加字段、设置默认值、增加外键等。 1. **增加字段** ```sql ALTER TABLE t_zhang ADD address VARCHAR(255) NULL; ``` 对应的 changelog.xml...

    LINUX导入数据库

    需要注意的是,此设置只对新创建的表生效,对于之前已经存在的空表仍然无法导出。因此,如果需要导出这些旧的空表,只能采用第一种方法。 #### 二、Oracle 11G数据库的导出工具:`EXP` `EXP`是Oracle提供的一种...

    orcale常用命令

    要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>sqlplus SQL>connect internal SQL>startup SQL>quit b、关闭ORACLE系统 oracle>sqlplus SQL>connect internal ...

Global site tag (gtag.js) - Google Analytics