欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql 中存在null和空時創(chuàng)建唯一索引的方法

 更新時間:2014年10月16日 17:25:32   投稿:whsnow  
據(jù)庫默認(rèn)值都有null,此時創(chuàng)建唯一索引時要注意了,此時數(shù)據(jù)庫會把空作為多個重復(fù)值

好多情況下數(shù)據(jù)庫默認(rèn)值都有null,但是經(jīng)過程序處理很多時候會出現(xiàn),數(shù)據(jù)庫值為空而不是null的情況。此時創(chuàng)建唯一索引時要注意了,此時數(shù)據(jù)庫會把空作為多個重復(fù)值,而創(chuàng)建索引失敗,示例如下:

步驟1:

mysql> select phone ,count(1) from User group by phone;
+-----------------+----------+
| phone | count(1) |
+-----------------+----------+
| NULL | 70 |
| | 40 |
| +86-13390889711 | 1 |
| +86-13405053385 | 1 |

步驟一中發(fā)現(xiàn)數(shù)據(jù)庫中有70條null數(shù)據(jù),有40條為空的數(shù)據(jù)。

步驟2:

mysql> select count(1) from User where phone is null;
+----------+
| count(1) |
+----------+
| 70 |
+----------+
1 row in set (0.00 sec)

經(jīng)2再次驗證數(shù)據(jù)庫中null和空不一樣的兩個值。

步驟3:

mysql> alter table User add constraint uk_phone unique(phone);
ERROR 1062 (23000): Duplicate entry '' for key 'uk_phone'
此時創(chuàng)建索引提示‘ '為一個重復(fù)的屬性。

步驟4:將所有的空值改成null

mysql> update User set phone = NULL where phone = '';
Query OK, 40 rows affected (0.11 sec)
Rows matched: 40 Changed: 40 Warnings: 0
步驟5:再次創(chuàng)建唯一索引

mysql> alter table User add constraint uk_phone unique(phone);
Query OK, 0 rows affected (0.34 sec)
Records: 0 Duplicates: 0 Warnings: 0

創(chuàng)建成功,OK了

相關(guān)文章

  • 高版本Mysql使用group?by分組報錯的解決方案

    高版本Mysql使用group?by分組報錯的解決方案

    GROUP?BY?語句用于結(jié)合合計函數(shù),根據(jù)一個或多個列對結(jié)果集進行分組,下面這篇文章主要給大家介紹了關(guān)于高版本Mysql使用group?by分組報錯的解決方案,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù)的實例代碼

    Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù)的實例代碼

    這篇文章主要介紹了Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù)的實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • mysql通過find_in_set()函數(shù)實現(xiàn)where in()順序排序

    mysql通過find_in_set()函數(shù)實現(xiàn)where in()順序排序

    這篇文章主要介紹了mysql通過find_in_set()函數(shù)實現(xiàn)where in()順序排序的相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • MySQL與存儲過程的相關(guān)資料

    MySQL與存儲過程的相關(guān)資料

    這篇文章主要介紹了MySQL與存儲過程的相關(guān)資料,需要的朋友可以參考下
    2007-03-03
  • MySQL創(chuàng)建用戶的三種方法

    MySQL創(chuàng)建用戶的三種方法

    在對MySQL的日常管理和操作中,為了避免有人惡意使用root用戶控制數(shù)據(jù)庫,盡可能地不用或少用 root 用戶登錄系統(tǒng),本文主要介紹了MySQL創(chuàng)建用戶的三種方法,感興趣的可以了解一下
    2023-08-08
  • 怎樣獲取MySQL結(jié)果集的第一條記錄

    怎樣獲取MySQL結(jié)果集的第一條記錄

    這篇文章主要介紹了怎樣獲取MySQL結(jié)果集的第一條記錄問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 大幅提升MySQL中InnoDB的全表掃描速度的方法

    大幅提升MySQL中InnoDB的全表掃描速度的方法

    這篇文章主要介紹了大幅提升MySQL中InnoDB的全表掃描速度的方法,作者談到了預(yù)讀取和多次async I/O請求等方法,減小InnoDB對MySQL速度的影響,需要的朋友可以參考下
    2015-06-06
  • DBeaver連接mysql和oracle數(shù)據(jù)庫圖文教程

    DBeaver連接mysql和oracle數(shù)據(jù)庫圖文教程

    DBeaver是一款免費的數(shù)據(jù)庫管理工具,支持多種數(shù)據(jù)庫,包括MySQL,下面這篇文章主要給大家介紹了關(guān)于DBeaver連接mysql和oracle數(shù)據(jù)庫的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • mysql字符串拼接的幾種實用方式小結(jié)

    mysql字符串拼接的幾種實用方式小結(jié)

    在SQL語句中經(jīng)常需要進行字符串拼接,下面這篇文章主要給大家介紹了關(guān)于mysql字符串拼接的幾種實用方式,文中通過圖文以及代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • mysql條件判斷函數(shù)的具體使用

    mysql條件判斷函數(shù)的具體使用

    本文主要介紹了mysql條件判斷函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評論