mysql刪除關(guān)聯(lián)表的實(shí)操方法
mysql數(shù)據(jù)庫(kù)中,表與表之間進(jìn)行關(guān)聯(lián)之后,就不可隨意的進(jìn)行刪除操作,否則會(huì)影響所有關(guān)聯(lián)表之間的結(jié)構(gòu),那么如何安全的刪除關(guān)聯(lián)表呢,讓我們來(lái)了解一下。
刪除表的外鍵約束
外鍵是一個(gè)特殊字段,其將某一個(gè)表與其父表建立關(guān)聯(lián)關(guān)系。在創(chuàng)建表的時(shí)候,外鍵約束就已經(jīng)設(shè)定好了。去掉他們之間的關(guān)聯(lián)關(guān)系需要用到下面語(yǔ)句。
alter table 表名 drop foreign key 外鍵別名;
外鍵別名參數(shù)指創(chuàng)建表時(shí)設(shè)置的外鍵代號(hào)。
2.刪除沒(méi)有被關(guān)聯(lián)的普通表
drop table 表名;
刪除一個(gè)表時(shí),表中的所有數(shù)據(jù)也會(huì)被刪除。刪除表時(shí)最好先將表中的數(shù)據(jù)備份一下。
3.刪除被其他表關(guān)聯(lián)的父表
當(dāng)刪除有關(guān)聯(lián)關(guān)系的表時(shí),用drop table example1 會(huì)報(bào)錯(cuò),原因是有外鍵依賴于該表
例如創(chuàng)建了一個(gè)example4表依賴于example1表,example4表的外鍵stu_id依賴于example1表的主鍵。example1表時(shí)example4表的父表。
如果要?jiǎng)h除example4表,必須先去掉這種依賴關(guān)系。最簡(jiǎn)單的辦法是先刪除子表example4,然后刪除父表example1。但這樣可能會(huì)影響子表的其他數(shù)據(jù)。
另一種方法是先刪除子表的外鍵約束,然后刪除父表。這種方法不會(huì)影響子表的其他數(shù)據(jù),可以保證數(shù)據(jù)庫(kù)的安全。
比如,example4表的外鍵別名是d_fk,刪除example4的外鍵約束
alter table example4 drop foreign key d_fk;。
可以通過(guò)show create table example4 \G來(lái)查看是否已刪除。
然后再執(zhí)行drop table example1;.
執(zhí)行成功則表示操作成功。
相關(guān)文章
MySQL中的HBase、ES的特點(diǎn)和區(qū)別解析
本文介紹了MySQL、HBase和ElasticSearch的特點(diǎn)和區(qū)別,MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù),支持事務(wù)和SQL,而HBase和ElasticSearch是NoSQL數(shù)據(jù)庫(kù),HBase基于HDFS,支持大規(guī)模數(shù)據(jù)的讀寫(xiě),而ElasticSearch是一個(gè)分布式的全文搜索引擎,感興趣的朋友跟隨小編一起看看吧2025-01-01
MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errc
File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index’ file2013-08-08
mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法
這篇文章主要介紹了mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法,需要的朋友可以參考下2014-12-12
MySQL分組查詢獲取每組最新的一條數(shù)據(jù)詳解(group?by)
在寫(xiě)報(bào)表功能時(shí)遇到一個(gè)需要根據(jù)用戶id分組查詢最新一條錢(qián)包明細(xì)數(shù)據(jù)的需求,下面這篇文章主要給大家介紹了關(guān)于MySQL分組查詢獲取每組最新的一條數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2024-08-08
MySQL replace函數(shù)替換字符串語(yǔ)句的用法
MySQL replace函數(shù)我們經(jīng)常用到,下面就為您詳細(xì)介紹MySQL replace函數(shù)的用法,希望對(duì)您學(xué)習(xí)MySQL replace函數(shù)方面能有所啟迪。2010-12-12
64位CentOs7源碼安裝mysql-5.6.35過(guò)程分享
本文給大家分享的是在64位CentOs7系統(tǒng)中使用源碼安裝mysql-5.6.35的詳細(xì)過(guò)程,非常的細(xì)致,有需要的小伙伴可以參考下2017-02-02
mysql 5.7更改數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)位置的解決方法
隨著MySQL數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)逐漸變大,已經(jīng)將原來(lái)的存儲(chǔ)數(shù)據(jù)的空間占滿了,導(dǎo)致mysql已經(jīng)鏈接不上了。所以要給存放的數(shù)據(jù)換個(gè)地方,下面小編給大家分享mysql 5.7更改數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)位置的解決方法,一起看看吧2017-04-04
centos編譯安裝mysql 5.6及安裝多個(gè)mysql實(shí)例詳解
這篇文章主要介紹了centos編譯安裝mysql 5.6及安裝多個(gè)mysql實(shí)例詳解,需要的朋友可以參考下2017-02-02

