MySQL 檢視資料庫中有主外來鍵關係的表資訊 2

2021-07-25 10:23:53 字數 1526 閱讀 9522

sql:

select

c.table_schema

擁有者,

c.referenced_table_name

父表名稱,

c.referenced_column_name

父表字段,

c.table_name

子表名稱,

c.column_name

子表字段,

c.constraint_name

約束名,

t.table_comment

表注釋,

r.update_rule

約束更新規則,

r.delete_rule

約束刪除規則

from

information_schema.key_column_usagec

join

information_schema.

tablest

ont.table_name

=c.table_name

join

information_schema.referential_constraintsr

onr.table_name

=c.table_name

andr.constraint_name

=c.constraint_name

andr.referenced_table_name

=c.referenced_table_name

where

c.referenced_table_name

isnot

null;

update/delete_rule 型別:

1.cascade

:從父表中刪除或更新對應的行

,同時自動的刪除或更新自表中匹配的行。on

delete

canscade和on

update

canscade都被innodb所支援。

2.set

null

:從父表中刪除或更新對應的行

,同時將子表中的外來鍵列設為空。注意

,這些在外鍵列沒有被設為not

null時才有效。on

delete

setnull和on

update

setset

null都被innodb所支援。

3.no

action

:innodb拒絕刪除或者更新父表。

4.restrict

:拒絕刪除或者更新父表

。指定restrict

(或者no

action

)和忽略on

delete或者on

update選項的效果是一樣的。

5.set

default

:innodb目前不支援。

表資訊參考列表:

referential_constraints表注釋參考:

key_column_usage

表注釋參考:

資料庫的主外來鍵關係

資料庫中有三種主外來鍵關係圖 1 一對一關係 2 一對多關係 兩種 總圖 注意 在資料庫中如果某列是 fk,那麼這列所在的表就意味著多。另外的表就是一。如下圖 四張表的結構展示了上面所有的三種關係圖 建立的指令碼 oracle create table pkfk b pkb varchar2 10 ...

mysql 的主外來鍵使用場景 資料庫主外建適用場景

主鍵和索引是不可少的,合理使用可以優化資料檢索速度 焦點 資料庫設計是否需要外來鍵。這裡有兩個問題 一 如何保證資料庫資料的完整性和一致性 二 建立外來鍵對效能的影響。正方觀點 1,由資料庫自身保證資料一致性,完整性,更可靠,因為程式很難100 保證資料的完整性,而用外來鍵即使在資料庫伺服器當機或者...

MySQL檢視資料庫鍵 MySQL資料庫基本命令

sql structure query language 結構化查詢語言 sql語言分為4個部分 ddl 定義 dml 操作 dql 查詢 dcl 控制 1 ddl語句 資料庫定義語言 資料庫 表 檢視 索引 儲存過程,例如create drop alter2 dcl語句 資料庫控制語言 例如控制使...