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