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.
測試數(shù)據(jù)庫版本為:
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é),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
mysql設(shè)置值timestamp獲取當(dāng)前時(shí)間并自動更新方式
這篇文章主要介紹了mysql設(shè)置值timestamp獲取當(dāng)前時(shí)間并自動更新方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07MySQL無服務(wù)及服務(wù)無法啟動的終極解決方案分享
又是MySQL的問題,之前已經(jīng)遇見過一次本地MySQL服務(wù)無法啟動的情況,現(xiàn)在又出現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于MySQL無服務(wù)及服務(wù)無法啟動的終極解決方案,需要的朋友可以參考下2022-06-06MySQL8設(shè)置自動創(chuàng)建時(shí)間和自動更新時(shí)間的實(shí)現(xiàn)方法
在實(shí)際應(yīng)用中,我們時(shí)常會需要用到創(chuàng)建時(shí)間和更新時(shí)間這兩個(gè)字段,下面這篇文章主要給大家介紹了關(guān)于MySQL8設(shè)置自動創(chuàng)建時(shí)間和自動更新時(shí)間的實(shí)現(xiàn)方法,需要的朋友可以參考下2023-03-03修改Innodb的數(shù)據(jù)頁大小以優(yōu)化MySQL的方法
這篇文章主要介紹了修改Innodb的數(shù)據(jù)頁大小以優(yōu)化MySQL的方法,Innodb是MySQL下一個(gè)頗具人氣的數(shù)據(jù)引擎,需要的朋友可以參考下2015-05-05mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02為什么MySQL選擇Repeatable Read作為默認(rèn)隔離級別
關(guān)于MySQL的事務(wù)隔離級別,相信很多讀者都不陌生,那么,你知道為什么Oracle選擇RC作為默認(rèn)級別,而MySQL要選擇RR作為默認(rèn)的隔離級別嗎2021-07-07