在DB2中将一个字段由非空改为空,为什么不能成功,各位大虾,帮忙,我感激不尽

在DB2中将一个字段由非空改为空,为什么不能成功
alter table aaa alter column id set data type varchar(20) null

why?
---------------------------------------------------------------

可以新建一个该字段为空的表,将数据倒进去。
直接改恐怕不行
---------------------------------------------------------------

你开玩笑了,导出数据和表结构,重新表。
---------------------------------------------------------------

这样其实也是它的优点,不然有些人就不重视数据库设计了 :)
---------------------------------------------------------------

如果你的数据量不算太大的话,可以使用 Quest Central for DB2 试一下,因为它把一些导入导出数据的动作集成了一下,还可以的。
---------------------------------------------------------------

当加字段,如果是 varchar类型的字段可以修改起长度,其他情况都必须新建表
---------------------------------------------------------------

不错,DB2认为数据和其完整性非常重要,像是其他数据库中危险的更改,删除字段等功能都是没有的。
---------------------------------------------------------------

是否危险应该由用户决定,作为软件供应商,你所可以做的,最多是可以给用户一个建议。如果自做决定,那必然是一个失败。
---------------------------------------------------------------

同意 lingyunfeipu(凌云):

开发人员累点就不说了,可本来我的软件已经做得很傻瓜了,但用户却要为安装DB2客户端费神,而且还常出问题,打多对此表示抱怨。

IBM应该提供安装整合功能,将客户端安装集成到开发商自己的安装程序中,并应进一步改善系统兼容性和容错性。

现在就只能尽量选择B/S应用了。
---------------------------------------------------------------

其实,IBM根本就没有把基于WIN平台的用户看在眼中,你看看500强中有多少使用DB2。

他的很多做法我是比较赞成的。从我们刚接触数据库时就知道数据库结构是非常重要的,如果数据库结构做一点变动,你的整个都必须做测试,哪怕是不允许空改变为空这样简单的动作。我用过SQL、SYBASE、ORACLE、DB2,连MYSQL我也使用过。
我比较反对数据库结构的随意性。
---------------------------------------------------------------

在AIX上,DB2的确比Oracle性能差一些,这个IBM也不敢否认(Oracle如是说)。

改变缓冲池页面大小 和 使用Long 类型字段可以减少行字节总数限制对你的程序的影响。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus