那就需要先刪除主表里的記錄,再刪除子表里的記錄。

吉隆ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
比如有如下數(shù)據(jù):
A表
uid ?name
1 ? ?張三
2 ? ?李四
B表
uid ?科目 ?分?jǐn)?shù)
1 ? ? 數(shù)學(xué) ? 90
1 ? ? 語文 ? 80
2 ? ? 數(shù)學(xué) ? 70
2 ? ? 語文 ? 60
現(xiàn)在要?jiǎng)h除A表里張三的記錄,如果有外鍵,直接
delete?from?A?where?uid=1
這樣是刪除不了的。
所以要先刪除B表里uid=1的記錄再執(zhí)行上邊這句
delete?from?B?where?uid=1
然后再執(zhí)行
delete?from?A?where?uid=1
就可以了
mysql刪除外鍵語法:
1
alter table ss_accesscode drop foreign key 外鍵約束名稱;
外鍵定義:
如果公共關(guān)鍵字在一個(gè)關(guān)系中是主關(guān)鍵字,那么這個(gè)公共關(guān)鍵字被稱為另一個(gè)關(guān)系的外鍵。由此可見,外鍵表示了兩個(gè)關(guān)系之間的相關(guān)聯(lián)系。以另一個(gè)關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字。
作用:
保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲(chǔ)在外鍵表中的數(shù)據(jù)。 使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值或使用空值。
在刪除那個(gè)把該外鍵作為主鍵的表之前,你先把包含外鍵的那個(gè)表中的外鍵全部刪掉,置為null,或者直接將那列刪掉,這樣就沒有地方引用這些外鍵,你就可以將那個(gè)表刪除掉了。希望可以幫忙。記得以前做過類似的東西,刪除將外鍵作為主鍵的表之前,必須將引用到這個(gè)鍵的內(nèi)容置空,即沒有引用該鍵,這樣便可以刪除了。
語法:ALTER TABLE 表名 DROP CONSTRAINT 外鍵名
例子:
mysql CREATE TABLE categories (
- category_id tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
- name varchar(30) NOT NULL,
- PRIMARY KEY(category_id)
- ) ENGINE=INNODB;
mysql CREATE TABLE articles (
- article_id INT(11) unsigned NOT NULL AUTO_INCREMENT,
- title varchar(255) NOT NULL,
- category_id tinyint(3) unsigned NOT NULL,
- member_id int(11) unsigned NOT NULL,
- INDEX (category_id),
- FOREIGN KEY (category_id) REFERENCES categories (category_id),
- PRIMARY KEY(article_id)
- ) ENGINE=INNODB;
外鍵名是什么:在上面的例子中category_id
在MySQL中刪除一張表或一條數(shù)據(jù)的時(shí)候,出現(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ù)
啟動(dòng)外鍵約束,我們可以使用:
SETFOREIGN_KEY_CHECKS=1;
查看當(dāng)前FOREIGN_KEY_CHECKS的值,可用如下命令:
SELECT @@FOREIGN_KEY_CHECKS;
分兩步走:
確認(rèn)受外鍵約束的數(shù)據(jù)是否可用同步刪除。如果可用則直接刪除,如果不可以則接觸外鍵約束。
外鍵解除或受外鍵約束數(shù)據(jù)被刪除后,可用直接刪除自身數(shù)據(jù)。
alter table test drop foreign key 外鍵名稱;
分享文章:mysql外鍵表怎么刪除,mysql 外鍵 刪除
當(dāng)前鏈接:http://chinadenli.net/article45/dseecei.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、用戶體驗(yàn)、定制開發(fā)、、云服務(wù)器、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)