CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

如何消灭掉Default默认值?

楼主Samland(samland)2005-08-22 15:50:33 在 Oracle / 基础和管理 提问

表结构  
  CREATE   TABLE   INVESTMENT(  
      IUSERID   NUMBER(10)   NOT   NULL   ,   /*   用户标识   */  
      FTOTAL   NUMBER(10,2)   NOT   NULL   ,   /*   总额   */  
      DENDVALIDDATE   DATE   DEFAULT   SYSDATE,   /*   截止有效期   */  
      FUSABLE   NUMBER(10,2),   /*   余额   */  
      CONSTRAINT   SYS_C0010414   PRIMARY   KEY   (IUSERID)  
  );  
   
  现在我想要把表变成这样(在不能够重建表的情况下),把“DEFAULT   SYSDATE”消灭掉:  
  CREATE   TABLE   INVESTMENT(  
      IUSERID   NUMBER(10)   NOT   NULL   ,   /*   用户标识   */  
      FTOTAL   NUMBER(10,2)   NOT   NULL   ,   /*   总额   */  
      DENDVALIDDATE   DATE,   /*   截止有效期   */  
      FUSABLE   NUMBER(10,2),   /*   余额   */  
      CONSTRAINT   SYS_C0010414   PRIMARY   KEY   (IUSERID)  
  );  
   
  而并不是变成  
      DENDVALIDDATE   DATE   DEFAULT   NULL,   /*   截止有效期   */  
   
  怎么样才能做的到? 问题点数:60、回复次数:6Top

1 楼waterfirer(水清)回复于 2005-08-22 16:03:02 得分 10

alter   table   INVESTMENT    
  modify   DENDVALIDDATE   DATE   DEFAULT   NULLTop

2 楼Samland(samland)回复于 2005-08-22 16:27:58 得分 0

那岂不是就变成了这样吗?  
      DENDVALIDDATE   DATE   DEFAULT   NULL,   /*   截止有效期   */  
  这不是我想得到的,  
  怎么样才能做的到完全消灭它?  
  Top

3 楼njhart2003()回复于 2005-08-22 16:30:51 得分 0

楼上正解!Top

4 楼njhart2003()回复于 2005-08-22 16:32:19 得分 10

不设置default   与default   NULL   是一样的  
  或者说default   NULL就是默认值。Top

5 楼bzszp(SongZip)回复于 2005-08-22 17:09:06 得分 40

SQL>   desc   t;  
    名称                                                                             空?             类型  
    -----------------------------------------   --------   --------------  
    AAA                                                                                                 VARCHAR2(10)  
    BBB                                                                                                 NUMBER  
   
  SQL>   select   defaultval   from   col   where   tname   ='T';  
   
  DEFAULTVAL  
  ------------------------------------------------------------------  
  Null  
   
   
  已用时间:     00:   00:   00.20  
  SQL>   alter   table   t   modify   aaa   default   NULL;  
   
  表已更改。  
   
  已用时间:     00:   00:   00.60  
  SQL>   select   defaultval   from   col   where   tname   ='T';  
   
  DEFAULTVAL  
  ------------------------------------------------------------------  
  NULL  
   
   
  已用时间:     00:   00:   00.30  
  SQL>   alter   table   t   modify   aaa   default   '';  
   
  表已更改。  
   
  已用时间:     00:   00:   00.40  
  SQL>   select   defaultval   from   col   where   tname   ='T';  
   
  DEFAULTVAL  
  ------------------------------------------------------------------  
  ''  
   
   
  已用时间:     00:   00:   00.40  
  SQL>    
   
  数据字典中的确实没法恢复了,没找到办法。  
  :(Top

6 楼bzszp(SongZip)回复于 2005-08-22 17:18:27 得分 0

不过用null没有什么问题。  
  SQL>   alter   table   t   modify   aaa   number   default   100;  
   
  表已更改。  
   
  已用时间:     00:   00:   00.30  
  SQL>   select   defaultval   from   col   where   tname   ='T';  
   
  DEFAULTVAL  
  --------------------------------------------------------------  
  100  
   
   
  已用时间:     00:   00:   00.30  
  SQL>   alter   table   t   modify   aaa   date;  
  alter   table   t   modify   aaa   date  
                                            *  
  ERROR   位于第   1   行:  
  ORA-02262:   ORA-%05d   出现,此时正在进行默认值表达式的类型检查  
   
   
  已用时间:     00:   00:   00.50  
  SQL>   alter   table   t   modify   aaa   number   default   null;  
   
  表已更改。  
   
  已用时间:     00:   00:   00.41  
  SQL>   select   defaultval   from   col   where   tname   ='T';  
   
  DEFAULTVAL  
  --------------------------------------------------------------  
  null  
   
   
  已用时间:     00:   00:   00.20  
  SQL>   alter   table   t   modify   aaa   date;  
   
  表已更改。  
   
  已用时间:     00:   00:   00.90  
  SQL>   select   defaultval   from   col   where   tname   ='T';  
   
  DEFAULTVAL  
  --------------------------------------------------------------  
  null  
   
   
  已用时间:     00:   00:   00.40  
  SQL>Top

相关问题

  • 去掉字段的默认值问题?
  • Sql Server探索-3:关于Default默认值。
  • status的默认值
  • 默认值问题:
  • 默认值问题
  • 默认值为Sysdate
  • 默认值问题
  • 这个SELECT如何设置默认值,比如某项为空时让其显示为0;default 0可以吗?
  • 急!!如何删除用ALTER TABLE 语句的 DEFAULT 创建的具有默认值的字段
  • 如何删除用ALTER TABLE 语句的 DEFAULT 创建的具有默认值的bit类型的字段

关键词

  • 有效期
  • date
  • sql
  • null
  • defaultval
  • 默认值
  • iuserid
  • 消灭
  • 表已更改
  • table t modify aaa

得分解答快速导航

  • 帖主:Samland
  • waterfirer
  • njhart2003
  • bzszp

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo