增加字段,对原有记录的影响
来源:互联网 发布:合肥黑马程序员 编辑:程序博客网 时间:2024/04/27 14:38
前两天看到别人脚本,有个增加字段并且提供默认值的操作发生了变化。以前是分两步写的,这次放在一个语句中,于是就触发了当前表上面的触发器。(表中已经有数据)
一个语句:
alter table test_ddl add (add_c1 number(2) default 0);
其实这个语句,不论新增字段是否非空,都会对原有记录进行update,从而触发器被触发。
两步执行:
alter table test_ddl add (add_c1 number(2));
alter table test_ddl modify (add_c1 default 0);
这个操作就不会修改原有记录。
找了一下文档,只发现了对第一个操作的说明。
If you add a column, then the initial value of each row for the new column is null unless you specify the DEFAULT
clause. In this case, Oracle Database updates each row in the new column with the value you specify for DEFAULT
. This update operation, in turn, fires any AFTER
UPDATE
triggers defined on the table.
而且还有关于修改默认值,会在字典中保留错误信息的提示。
Note:
If a column has a default value, then you can use the DEFAULT
clause to change the default to NULL
, but you cannot remove the default value completely. That is, if a column has ever had a default value assigned to it, then the DATA_DEFAULT
column of the USER_TAB_COLUMNS
data dictionary view will always display either a default value or NULL
.
验证了一下,确实如此。
alter table test_ddl modify (add_c1 default null);
SQL> select t.column_name, t.default_length, t.data_default from user_tab_cols t where t.table_name = 'TEST_DDL';
COLUMN_NAME DEFAULT_LENGTH DATA_DEFAULT
------------------------------ -------------- --------------------------------------------------------------------------------
ID#
VAL
ADD_C1 4 null
SQL>
摆明了是错误信息啊。
但是关于modify默认值的说明,没有看到。不知道哪位能够提供一下。
- 增加字段,对原有记录的影响
- 数据库升级 给原有的表增加字段
- SQL2005中对一个记录很大的表增加一个自增字段,总是增加失败
- mysql字段对索引的影响
- 索引字段顺序对效率的影响
- 字段数据类型对索引的影响测试
- 如何从原有的表中创建一个新表,并增加几个字段?
- KEIL下增加STC单片机,不影响选择原有器件
- 在基础设施的重构过程中,如何保障对原有业务不产生影响?
- 如何在数据库原有字段后增加内容?
- 技巧 改变实体性质(增加一个类型字段) , 增加一种关系 考虑上游下游的影响
- NLS_LENGTH_SEMANTICS参数对VARCHAR2类型的字段的影响
- 分区表中GLO字段对信息收集的影响
- mysql字段varchar长度分配对性能的影响
- 【MySQL基础】MySQL关于load对auto_increment字段的影响
- 使用FieldValues属性为增加的记录字段赋值
- linux新建tomcat(不影响原有的tomcat使用)
- ExtJS对原有JavaScript对象的扩展
- 下载cab,sis,sisx等软件包出现乱码的解决方法
- 浏览器里的好东东
- 关于IP地址在数据库的存储格式
- 干嘛来写博客
- 很好的QTP博客
- 增加字段,对原有记录的影响
- call method cl_gui_cfw =>flush
- Java系统中内存泄漏测试方法的研究
- 用C写的3D迷宫
- MySql 数据类型大全
- 用户控件的随想
- 精确获取页面元素的位置
- 如何学习一门新语言(新手篇)
- 黑盒测试如何保证测试覆盖率