新手问题 mysql 更改表:在有数据的情况下新增一列 uniq column 的问题

lufeihaidao · 2014年06月18日 · 最后由 lufeihaidao 回复于 2014年06月18日 · 2520 次阅读
+-------------------+---------------------+                       
|                   |                     |                       
|    column1        |      column2        |                       
|                   |                     |                       
+-----------------------------------------+                       
|                   |                     |                       
+-----------------------------------------+                       
|                   |                     |                       
+-----------------------------------------+                       
|                   |                     |                       
+-------------------+---------------------+                       

如图所示的一个表格,已经有了一些数据,我想新增一列 unique column3,步骤是 1:新增一列 column3;2:改 column3 为 unique。(当然直接 add column unique 也是可以的)

如果 column3 可以是 null,那么这不会有什么问题。

问题是,我需要 column3 是 not null 的,这样我先添加 column3, 默认值是 '', 再改 column3 为 unique 的时候,mysql 就会报错(数据的 column3 都是 '')

这样的问题一般如何解决?

有 null 值就完全不用考虑 uniq 了,实在要做 uniq,在 ruby 里很容易做到

#1 楼 @xxqfamous 我也是这个意思,但是老板的意思是,数据库应该是最后一层验证,绝对不能通过的都要在这一层 block 掉,所以他说这一列不能是 null。我也很为难。

不能为 null 就可以做啊,先补充唯一值进去

需要 登录 后方可回复, 如果你还没有账号请 注册新账号