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語句 資料庫控制語言 例如控制使...