1. 程式人生 > >關於使用視覺化圖形工具navicat for mysql來建立外來鍵的步驟

關於使用視覺化圖形工具navicat for mysql來建立外來鍵的步驟

    主鍵:主鍵是一張表的唯一識別符號,應該讓其處於不可被外界更改狀態。

     且主鍵對於使用者來說是無意義的,為了明確這一點,我們應該讓主鍵處於一種幽魂狀態,即主鍵存在,但其他人並不感覺到它存在。    

    外來鍵:建立外來鍵是為了在資料表之間建立聯絡。一個外來鍵一般而言在他自身的主表中是唯一的,我這裡經常就使用主表的主鍵作為從表的外來鍵。

    何謂主表,從表?

    user表中有欄位    

            id            int            11            not null        主鍵    

            name      varchar    20            not null        普通欄位

    message表中有欄位

            id               int            11            not null        主鍵    

            content      varchar    20            not null        普通欄位

            userId        int            11            null               外來鍵

    上方有兩張表,其中user表就是主表,而message表即是從表。

    新增外來鍵的時候應該注意如下規則:

   1、新增外來鍵的資料庫引擎必須為InnoDB

   2、關聯的欄位資料型別必須一樣,如上方兩張表中的關聯都是int型別

   3、知道表與表之間的主從關係,需要在從表中新增外來鍵

   4、從表中的關聯欄位資料,在主表中需要是唯一的,我這裡一般就使用主表的主鍵

   5、建立外來鍵的時候,需要先建立索引。索引的目的是為了更快地進行搜尋。當然,如果沒有在主表裡面建立索引,那麼可能在從表中建立外來鍵的時候出現錯誤。

   6、如果有多張表需要建立外來鍵,那麼外來鍵的名字也必須是唯一的,且不區分大小寫。

 使用navicat for mysql建立外來鍵時,需要選擇刪除更新的關係:


 .cascade方式
    在父表上update/delete記錄時,同步update/delete掉子表的匹配記錄 

   . set null方式
    在父表上update/delete記錄時,將子表上匹配記錄的列設為null
    要注意子表的外來鍵列不能為not null  

   . No action方式
    如果子表中有匹配的記錄,則不允許對父表對應候選鍵進行update/delete操作  

   . Restrict方式
    同no action, 都是立即檢查外來鍵約束