MySQL 修改正在使用被外來鍵約束的列

2021-09-05 12:22:12 字數 538 閱讀 6852

一、今天做專案由於客戶乙個奇葩的需求,所以遇到乙個比較奇怪的問題,就是在mysql 資料庫中,正在使用兩個表,a表其中的一列是b表的外來鍵,現在需要修改a表和b表的列,直接修改就報錯誤,如下:

資料庫處理這種東西時,不允許進行修改,因為這個操作違反了外來鍵約束,破壞了資料庫完整性。

mysql提供了乙個方法,臨時關閉外來鍵約束,當修改完成之後再將外來鍵約束加回來。 

需要的操作放在兩個語句之間:

set foreign_key_checks = 0;

/* do what you need here */

update personal set sfzid = '12345678' where sfzid = '6fef14da';

update card set sfzid = '12345678' where sfzid='6fef14da';

set foreign_key_checks = 1;

mysql外來鍵教程 MySQL外來鍵使用詳解

最近有開始做乙個實驗室管理系統,因為分了幾個表進行儲存 所以要維護表間的關聯 研究了一下mysql的外來鍵 1 只有innodb型別的表才可以使用外來鍵,mysql預設是myisam,這種型別不支援外來鍵約束 2 外來鍵的好處 可以使得兩張表關聯,保證資料的一致性和實現一些級聯操作 3 外來鍵的作用...

mysql是否推薦使用外來鍵 MySQL 外來鍵使用

mysql 外來鍵使用 外來鍵的使用條件 1.兩個表必須是innodb表,myisam表暫時不支援外來鍵 據說以後的版本有可能支援,但至少目前不支援 2.外來鍵列必須建立了索引,mysql 4.1.2以後的版本在建立外來鍵時會自動建立索引,但如果在較早的版本則需要顯示建立 3.外來鍵關係的兩個表的列...

mysql外來鍵使用

有個時候,在建立資料庫時,兩張表需要達到乙個效果 主表刪除,修改資料時,從表也要執行相應的操作,比如設定電商 有一張goods表,goods count 商品統計表 商品表執行對應的操作時,統計表也要執行相應的統計,那麼我們可以設定如下外來鍵關聯 如下 create table if not exi...