python ** 運算符 MySQL如何刪除有外鍵約束的表數(shù)據(jù)?
MySQL如何刪除有外鍵約束的表數(shù)據(jù)?有外鍵時,應先關閉外鍵功能,然后刪除,再打開。認為不能刪除帶有外鍵的表。如果是MySQL數(shù)據(jù)庫,請先關閉外鍵set foreignukeyuchecks=0,然后
MySQL如何刪除有外鍵約束的表數(shù)據(jù)?
有外鍵時,應先關閉外鍵功能,然后刪除,再打開。認為不能刪除帶有外鍵的表。如果是MySQL數(shù)據(jù)庫,請先關閉外鍵set foreignukeyuchecks=0,然后在打開set foreign時刪除ukeyuchecks=1
外鍵用作約束,以避免錯誤的數(shù)據(jù)插入,屬于一致性范疇。我們不使用它的原因是,在大數(shù)據(jù)集的情況下,在外鍵的約束下插入大量數(shù)據(jù)非常慢。傳統(tǒng)數(shù)據(jù)庫導入數(shù)據(jù)時,通常建議關閉外鍵。在Internet場景中,數(shù)據(jù)庫表橫向拆分后,實際上數(shù)據(jù)庫端已經(jīng)無法實現(xiàn)外鍵約束,比如主表被拆分成不同的實例。在刪除問題上,這一點本身就需要被接受,操作成本也無法避免。例如子庫、子表所需的數(shù)據(jù)冗余,如果要刪除,只能刪除幾次。這是分布式事務的一個要求,不能在一臺機器上實現(xiàn),只能在程序端進行控制。最后,說什么需要什么不需要,而不事先提及條件和場景,這是偽科學。