想向一个表中增加一个新列,
要求此列属性为not null,需要写入默认值,
但是要求写入的默认值要根据表中各行数据的具体情况写入不同的值。请问:
一条sql语句可以完成上述功能吗?
alter table ……之类的或者只能先插入一个固定的默认值,然后再写一个存储过程来修改这个列的值?
要求此列属性为not null,需要写入默认值,
但是要求写入的默认值要根据表中各行数据的具体情况写入不同的值。请问:
一条sql语句可以完成上述功能吗?
alter table ……之类的或者只能先插入一个固定的默认值,然后再写一个存储过程来修改这个列的值?
解决方案 »
- oracle9i创建用户时出现:ora-01996:Grant 失败!
- 高级应用话题(请资深专家一起探讨探讨)
- 连接远程Oracle服务器出现如下错误 - ORA-12541: TNS:no listensr, 如何解决?
- 如何移动具有分区的表blob字段至其他的表空间
- .sql里面能否读文件
- 这个SQL语句怎么写?
- 请教VC+ADO访问Oracle的问题
- Oracle 11g express 使用与Oracle 11G有多大的差距
- tnsping数据库别名可以ping通,为什么用新建的用户使用别名连接就无法连接
- Oracle数据库开归档后,归档异常增长
- 新手求助:表比较大,又要多表查询,应该如何写sql语句
- 如何自动生成编号字段?
alter table tbname modify(col default xxx);
好像不支持引用其他列,(测试版本817)用触发器吧。
那么推荐使用trigger。
这也是触发器的强项
名称 是否为空? 类型
----------------------------------------- -------- ------------- AA VARCHAR2(10)
BB NOT NULL VARCHAR2(10)
这是对正在使用的数据表结构的修改,我在这次修改中需要考虑历史数据的问题。
当我增加了一个字段的时候,要根据历史数据对这个新字段写入正确的历史数据中的对应值显然这个是不能用triger的