昨天聽同學問起,關聯式的DB用phpmyadmin要怎麼設定,本來還開玩笑的跟他說,現在還沒用到,等到我需要再告訴我,沒想到今天就用上了XD

不過他還沒上班,所以我就先找了一些東西...
參考資料:phpMyAdmin 設定 mysql foreign keyMySql設定外來鍵InnoDB 實現了 MySQL 的 Foreign Key
首先,要先找到my.ini去設定phpmyadmin的innodb的參數:
phpmyadmin innodb設定01  
將skip-innodb給註解掉 (原本只有skip-innodb,改成#skip-innodb),修改完成後,直接存檔關掉,然後重啟Apache跟mysql,步驟如下:
 
1.在我的電腦按右鍵>管理
phpmyadmin innodb設定02
 
2.出下以下電腦管理的畫面後,將服務及應用程式展開,然後點選服務,找到Apache跟mysql後,可以點右鍵選重新啟動,或者旁邊就有可以點的連結的。
phpmyadmin innodb設定03
執行完後,php的經紀人phpmyadmin就可以做關聯式的動作了,不過還是有些小地方要先修改:
 
首先,先打開phpmyadmin (http://127.0.0.1/)登入,然後就是以下的步驟:
1.選擇你的db
2.選擇要做key的table
3.點選管理
4.將儲存引擎修改成InnoDB
5.執行
完成這些步驟後,這個資料表(這時候它就是父資料表了)裡有INDEX性質的key就可以被參考了。
phpmyadmin innodb設定04 
小提醒:這時候父資料表的欄位不做下一個步驟,因為這個table是要『被』參考的。
 
接著就是要設定哪個欄位要去參考別的欄位(foreign key):
1.點選結構
2.點選關聯檢視
 phpmyadmin innodb設定05
點選關聯檢視,會出現這個畫面,還沒設定的時候,就會向第一行的Fix_Engineer_ID一樣,InnoDB的設定都是『--』,所以我們要執行以下的步驟:
1.選擇你要參考的key,
2.選擇從父資料表參考的key被刪除時的處理方式
3.選擇從父資料表參考的key被變更時的處理方式
phpmyadmin innodb設定06

小提示:
當關聯父資料表的主鍵紀錄行被刪除修改時,InnoDB 對子資料表中紀錄行的處理方式:

CASCADE - 會將有所關聯的紀錄行也會進行刪除或修改。
SET NULL - 會將有所關聯的紀錄行設定成 NULL。
NO ACTION - 有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
RESTRICT - 與 NO ACTION 相同。
--引用自InnoDB 實現了 MySQL 的 Foreign Key
 
arrow
arrow
    全站熱搜

    Joy 發表在 痞客邦 留言(1) 人氣()