1.lesson表: ?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2!--StartFragment --?0?2我現(xiàn)在想刪除sid這個列的外鍵: 別的同學(xué)的機(jī)子都可以刪除,但是我的機(jī)子就不行,我們的MySql是一個版本的,不知道是什么原因?誰幫我解答下?????問題補(bǔ)充:div class="quote_title"hanyuanbo 寫道/divdiv class="quote_div"你的同學(xué)可以刪除,而且版本也一樣,可能是你們表的結(jié)構(gòu)不同。你可以先將那個包含外鍵的那個表備份下,刪除掉那個表格,這樣就可以刪除外鍵了。之后再把備份恢復(fù)下就好了。img src="/images/smiles/icon_smile.gif"/ /div /div class="quote_title"hanyuanbo 寫道/divdiv class="quote_div"你的同學(xué)可以刪除,而且版本也一樣,可能是你們表的結(jié)構(gòu)不同。你可以先將那個包含外鍵的那個表備份下,刪除掉那個表格,這樣就可以刪除外鍵了。之后再把備份恢復(fù)下就好了。img src="/images/smiles/icon_smile.gif"/ /div /就是因?yàn)橛型怄I,所以導(dǎo)致列和表都刪除不了,除非把整個Database都刪除,那樣的話我做的整個database都沒了,只要找到能刪除外鍵的,就可以把這個列刪除,也就照樣可以把這個表刪除?。。?!郁悶啊就是不能刪除哪個外鍵!!問題補(bǔ)充:div class="quote_title"hanyuanbo 寫道/divdiv class="quote_div"在刪除那個把該外鍵作為主鍵的表之前,你先把包含外鍵的那個表中的外鍵全部刪掉,置為null,或者直接將那列刪掉,這樣就沒有地方引用這些外鍵,你就可以將那個表刪除掉了。希望可以幫忙。記得以前做過類似的東西,刪除將外鍵作為主鍵的表之前,必須將引用到這個鍵的內(nèi)容置空,即沒有引用該鍵,這樣便可以刪除了。/div /alter table lesson drop index key; /nbsp; 可是這個語句刪除不了外鍵啊,我也知道只要把外鍵刪掉就可以刪除表了,關(guān)鍵是我不知道怎么刪外鍵了?。。?!
十年的新巴爾虎右網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整新巴爾虎右建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“新巴爾虎右網(wǎng)站設(shè)計(jì)”,“新巴爾虎右網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
mysql刪除外鍵語法:
1
alter table ss_accesscode drop foreign key 外鍵約束名稱;
外鍵定義:
如果公共關(guān)鍵字在一個關(guān)系中是主關(guān)鍵字,那么這個公共關(guān)鍵字被稱為另一個關(guān)系的外鍵。由此可見,外鍵表示了兩個關(guān)系之間的相關(guān)聯(lián)系。以另一個關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字。
作用:
保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲在外鍵表中的數(shù)據(jù)。 使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值或使用空值。
在MySQL中刪除一張表或一條數(shù)據(jù)的時候,出現(xiàn)
[Err] 1451 -Cannot deleteorupdatea parent row:
aforeignkeyconstraintfails (...)
這是因?yàn)镸ySQL中設(shè)置了foreign key關(guān)聯(lián),造成無法更新或刪除數(shù)據(jù)??梢酝ㄟ^設(shè)置FOREIGN_KEY_CHECKS變量來避免這種情況。
禁用外鍵約束,我們可以使用:
SETFOREIGN_KEY_CHECKS=0;
然后再刪除數(shù)據(jù)
啟動外鍵約束,我們可以使用:
SETFOREIGN_KEY_CHECKS=1;
查看當(dāng)前FOREIGN_KEY_CHECKS的值,可用如下命令:
SELECT @@FOREIGN_KEY_CHECKS;
mysql刪除外鍵語法:
alter?table?ss_accesscode?drop?foreign?key?外鍵約束名稱;
外鍵定義:
如果公共關(guān)鍵字在一個關(guān)系中是主關(guān)鍵字,那么這個公共關(guān)鍵字被稱為另一個關(guān)系的外鍵。由此可見,外鍵表示了兩個關(guān)系之間的相關(guān)聯(lián)系。以另一個關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字。
作用:
保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲在外鍵表中的數(shù)據(jù)。 使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值或使用空值。
如上圖所示使用SHOW CREATE TABLE 表名稱;
記住CONSTRINT后面‘’這個符號中的內(nèi)容
這時候就可以使用ALTER TABLE 表名稱 DROP FOREIGN KEY 剛剛記住的內(nèi)容;
OK啦上述兩步就可以刪除外鍵啦
分兩步走:
確認(rèn)受外鍵約束的數(shù)據(jù)是否可用同步刪除。如果可用則直接刪除,如果不可以則接觸外鍵約束。
外鍵解除或受外鍵約束數(shù)據(jù)被刪除后,可用直接刪除自身數(shù)據(jù)。
alter table test drop foreign key 外鍵名稱;