MySQL刪除外鍵問題小結(jié)
MySQL:MySQL不能刪除外鍵,抱錯(cuò)Error on rename of ./ruler/test2child to ./ruler/#sql2-298-92 (errno: 152)
曾經(jīng)這是MySQL的一個(gè)bug,但是現(xiàn)在只是MySQL的一個(gè)不友好的地方。
例子如下:
mysql> ALTER TABLE ruler.test2child DROP FOREIGN KEY test; ERROR 1025 : Error on rename of ''./ruler/test2child'' to ''./ruler/#sql2-298-8f'' (errno: 152)
這里并不是不能刪除外鍵,而是使用了錯(cuò)誤的外鍵名稱,但是MySQL報(bào)的錯(cuò)實(shí)在離譜。
正確的錯(cuò)誤信息要如下查詢才能知道:
mysql> show innodb status; ------------------------ LATEST FOREIGN KEY ERROR ------------------------ 071222 20:48:26 Error in dropping of a foreign key constraint of table "ruler"."test2child", in SQL command ALTER TABLE ruler.test2child DROP FOREIGN KEY test Cannot find a constraint with the given id "test".
另外外鍵的其他操作也有類似情況:
比如外鍵 新建報(bào)錯(cuò):
Can''t create table ''ruler.#sql-298_92'' (errno: 150) show innodb status; ------------------------ LATEST FOREIGN KEY ERROR ------------------------ 071222 20:18:57 Error in foreign key constraint of table ruler/#sql-298_8d: FOREIGN KEY (test2code) REFERENCES ruler.test2 (test) on delete set null: You have defined a SET NULL condition though some of the columns are defined as NOT NULL.
測(cè)試數(shù)據(jù)庫(kù)版本為:
5.2.0-falcon-alpha-community-nt
刪除外鍵的做法:
//先刪除外鍵名,再刪外鍵字段(mysql官方提供)
例:
alter table task drop foreign key FK_Reference_7; alter table task drop column `assigned`;
以上所述是小編給大家介紹的MySQL刪除外鍵問題小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
mysql設(shè)置值timestamp獲取當(dāng)前時(shí)間并自動(dòng)更新方式
這篇文章主要介紹了mysql設(shè)置值timestamp獲取當(dāng)前時(shí)間并自動(dòng)更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Mysql數(shù)據(jù)庫(kù)的優(yōu)化詳解
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)的優(yōu)化詳解,查詢優(yōu)化的本質(zhì)是讓數(shù)據(jù)庫(kù)優(yōu)化器為SQL語(yǔ)句選擇最佳的執(zhí)行計(jì)劃,一般來(lái)說(shuō),對(duì)于在線交易處理(OLTP)系統(tǒng)的數(shù)據(jù)庫(kù),減少數(shù)據(jù)庫(kù)磁盤I/O是SQL語(yǔ)句性能優(yōu)化的首要方法,需要的朋友可以參考下2023-07-07MySQL無(wú)服務(wù)及服務(wù)無(wú)法啟動(dòng)的終極解決方案分享
又是MySQL的問題,之前已經(jīng)遇見過一次本地MySQL服務(wù)無(wú)法啟動(dòng)的情況,現(xiàn)在又出現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于MySQL無(wú)服務(wù)及服務(wù)無(wú)法啟動(dòng)的終極解決方案,需要的朋友可以參考下2022-06-06MySQL8設(shè)置自動(dòng)創(chuàng)建時(shí)間和自動(dòng)更新時(shí)間的實(shí)現(xiàn)方法
在實(shí)際應(yīng)用中,我們時(shí)常會(huì)需要用到創(chuàng)建時(shí)間和更新時(shí)間這兩個(gè)字段,下面這篇文章主要給大家介紹了關(guān)于MySQL8設(shè)置自動(dòng)創(chuàng)建時(shí)間和自動(dòng)更新時(shí)間的實(shí)現(xiàn)方法,需要的朋友可以參考下2023-03-03修改Innodb的數(shù)據(jù)頁(yè)大小以優(yōu)化MySQL的方法
這篇文章主要介紹了修改Innodb的數(shù)據(jù)頁(yè)大小以優(yōu)化MySQL的方法,Innodb是MySQL下一個(gè)頗具人氣的數(shù)據(jù)引擎,需要的朋友可以參考下2015-05-05mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02淺談mysql數(shù)據(jù)庫(kù)事物隔離級(jí)別
本文主要介紹了淺談mysql數(shù)據(jù)庫(kù)事物隔離級(jí)別,數(shù)據(jù)庫(kù)事務(wù)的隔離級(jí)別有4個(gè),這四個(gè)級(jí)別可以逐個(gè)解決臟讀 、不可重復(fù)讀 、幻讀這幾類問題,本文就詳細(xì)的介紹一下,感興趣的可以了解一下2023-05-05為什么MySQL選擇Repeatable Read作為默認(rèn)隔離級(jí)別
關(guān)于MySQL的事務(wù)隔離級(jí)別,相信很多讀者都不陌生,那么,你知道為什么Oracle選擇RC作為默認(rèn)級(jí)別,而MySQL要選擇RR作為默認(rèn)的隔離級(jí)別嗎2021-07-07