InnoDB 中foreign key使用注意事項

來源:互聯網
上載者:User

Innodb foreign key 和 sql  standards的區別:

在 sel statement 中的inserts,deletes,updates 很多行的時候,fk 會一行一行檢查。 innodb是設定 shared row_level locks 在父表或者子表上,MySQL CHECK 會立即檢查是否有符合的行,並不會延遲到事務提交的時候,在innodb上建立fk的條件:

1、innodb允許關聯到一個index或者一組 columns(第一個column 必須是index)

2、innodb不支援在使用者自訂的分區表上建立fk

3、innodb允許fk關聯到一個non-unique key .

關聯的所涉及到的動作:

1、set default MySQL SERVER 支援,但Innodb不支援。

2、如果子表中對應父表的多條記錄,如果constraint type 為restrict,那麼innodb是不允許刪除

父表當中的這幾條記錄的。

3、innodb進行級聯操作時,使用depth-first 演算法,通過行記錄的索引進行尋找

4、ON UPDATE CASCADE or ON UPDATE SET NULL 不能進行self-referential

可以在 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 中查看 innodb key的具體情況。也可以通過show

engine innodb status 來 進行查看 fk 的錯誤。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.