mysql創(chuàng)建的外鍵無法保存的原因以及處理辦法
為mysql表內(nèi)的字段創(chuàng)建外鍵,并關(guān)聯(lián)幾種更新或者刪除時的動作。
那以下就向大家介紹下mysql創(chuàng)建的外鍵無法保存的原因以及處理方法
無報錯,但是創(chuàng)建的外鍵都消失了,只能在索引找到之前創(chuàng)建的相關(guān)外鍵
原因
mysql引擎的原因,mysql主要使用兩種引擎:myisam以及innodb(兩者區(qū)別大家可以去看下我別的文章:php面試重點mysql存儲引擎innodb和myisam的區(qū)別),phpstudy默認使用的myisam引擎,在不作任何改變的情況下直接建表,往往建立的是就是以myisam引擎為基礎(chǔ)的,而myisam區(qū)別于innodb的一個明顯不同是myisam不能創(chuàng)建外鍵,因此創(chuàng)建外鍵不能成功。
解決方法
首先判斷是否是這個問題引起的不能創(chuàng)建外鍵:
如果是myisam引起的問題的話:
myisam引擎的表格是可以直接修改成innodb引擎的:
首先判斷mysql的my.ini是否有打開innodb。(如果沒有的話,在修改引擎那里,是沒有innodb選項的)
這里以phpstudy為實例(不同的mysql軟件都是修改my.ini文件)
進入之后顯示的是my,ini文件,然后按照綠色字體的提示修改即可。
(右鍵需要修改的表格,選擇“設(shè)計表“,然后做如下操作)
注意:
一個數(shù)據(jù)庫要統(tǒng)一使用的引擎,如果某個表修改了引擎,那其他的也要跟著修改,預(yù)防報錯,然后在修改的同時,要注意編碼格式,要保持表編碼的統(tǒng)一(不然在后面創(chuàng)建外鍵的時候會報錯),
如下:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫亂碼之保存越南文亂碼解決方法
做一個包含越南文的網(wǎng)站,用戶說在保存包含越南文的文章時,MSYQL亂碼了,看下面的解決方法2013-12-12SQL實現(xiàn)LeetCode(182.重復(fù)的郵箱)
這篇文章主要介紹了SQL實現(xiàn)LeetCode(182.重復(fù)的郵箱),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08CentOS下php使用127.0.0.1不能連接mysql的解決方法
這篇文章主要介紹了CentOS下php使用127.0.0.1不能連接mysql的解決方法,本文原因是SELINUX導(dǎo)致的連接失敗,需要的朋友可以參考下2015-01-01

Mysql應(yīng)用安裝后找不到my.ini文件的解決過程