日期:2014-05-17  浏览次数:21270 次

添加字段和约束,进退两难
表中有一个字段colum1,现在想添加另一个字段colum2,允许他为null。
然后加一个unique(colum1,colum2)的约束。这样就会产生duplicate   keys   found
的错误。
可我的程序往这个表里塞数据的时候,有的需要一个这样的约束,防止colum1,colum2重复。有的根本不往colum2中放数据。既可以让他为null。
不知道有什么好的解决方案。

------解决方案--------------------
存在重复key的情况是因为,已经定义过了.
单单在(c1,c2)上建立组合uk是不会出现什么问题. 把desc的描述拿出来看看.
------解决方案--------------------
可以在触发器里面控制,如果发现插入的数据不符合你的约束,raise一个错误
------解决方案--------------------
colum1中存在重复数据,colum2可以为null
加unique(colum1,colum2),的时候不能保证(colum1,colum2)是唯一的了,这样就加不上了
------解决方案--------------------
myoldsaturn(saturn) 说得对。

假设字段colum1有重复数据 '001 ',在你添加字段colum2时,表中原来数据的colum2字段的值都是NULL,所以colum1= '001 ',colum2=NULL的记录就会有重复,那么加unique(colum1,colum2)就必然失败。
------解决方案--------------------
看来只能舍弃colum1中重复的数据再添加你的约束了!