搜尋

首頁  >  問答  >  主體

mysql UNIQUE的条件

ALTER TABLE  `table` ADD  `unionid` VARCHAR( 255 ) NOT NULL

然后设置唯一索引

ALTER TABLE  `table` ADD UNIQUE (
`unionid`
)

提示

1062 - Duplicate entry '' for key 'unionid'

请问这是为什么呢?

伊谢尔伦伊谢尔伦2770 天前713

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-17 15:34:49

    第一句SQL:你為table表格增加了unionid列,且是非空字串,所以初始值是空字串''

    第二句SQL:你給table表的unionid列建立唯一約束,但唯一約束的前提是unionid列的值不重複,然而unionid列的所有值都是空字符串'',所以會報Duplicate entry '' for key 'unionid'

    解決方法:先把unionid的值修正為不重複後再給該列新增唯一限制。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 15:34:49

    直接進資料庫操作啊,你加入索引就會有指令提示,這樣不就知道哪裡錯了

    回覆
    0
  • 取消回覆