在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 类型字段可以减少行字节总数限制对你的程序的影响。