外來鍵約束延伸 ON語句

2021-09-24 02:02:52 字數 2558 閱讀 8175

set null

思考乙個問題:假如部門經理john被其他公司挖走,john平時對自己的下屬非常好,下屬願意和他一起走,也就是說,john離職會將自己的團隊一併帶走,在資料表操作上有沒有好的方法一次性解決這個問題?

foreign

key(managerid)

references dpmanager(id)

ondelete

cascade

create

table staff3 (

id tinyint(4

)primary

keyauto_increment

, name varchar(20

)not

null

, regular enum

('yes'

,'no'

)default

'no'

, managerid tinyint(4

),foreign

key(managerid)

references dpmanager(id)

ondelete

cascade

);

+

----+-------+---------+-----------+

| id | name | regular | managerid |

+----+-------+---------+-----------+|1

| kevin |no|

1||2

| moyok |no|

4||3

| visto |no|

2|+----+-------+---------+-----------+

delete

from dpmanager where name=

"john"

;

+

----+------+------+-------------+

| id | name | age | is_marriged |

+----+------+------+-------------+|1

| tim |29|

1||2

| leo |35|

1|+----+------+------+-------------+

原john手下的員工moyok隨著john一起離職

+

----+-------+---------+-----------+

| id | name | regular | managerid |

+----+-------+---------+-----------+|1

| kevin |no|

1||3

| visto |no|

2|+----+-------+---------+-----------+

foreign

key(managerid)

references dpmanager(id)

ondelete

setnull

alter

table staff3 drop

foreign

key staff3_ibfk_1;

alter

table staff2 drop

foreign

key staff2_ibfk_1;

alter

table staff drop

foreign

key abc;

alter

table staff3 add

constraint staff3_fk_dpmanger foreign

key(managerid)

references dpmanager(id)

ondelete

setnull

;

delete

from dpmanager where name=

"leo"

;

即原經理leo的下屬visto關聯的經理managerid為null

+

----+-------+---------+-----------+

| id | name | regular | managerid |

+----+-------+---------+-----------+|1

| kevin |no|

1||3

| visto |no|

null|+

----+-------+---------+-----------+

mysql外來鍵和外來鍵約束

1.mysql中 鍵 和 索引 的定義相同,所以外來鍵和主鍵一樣也是索引的一種。不同的是mysql會自動為所有表的主鍵進行索引,但是外來鍵字段必須由使用者進行明確的索引。用於外來鍵關係的字段必須在所有的參照表中進行明確地索引 2.如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主...

mysql 外來鍵和外來鍵約束

1.外來鍵 如果公共關鍵字在乙個關係中是主關鍵字,那麼這個公共關鍵字被稱為另乙個關係的外來鍵。就是a表的主鍵,被用到了b表中,此時它就成了外來鍵 2.外來鍵約束 如果想要插入或者更新外來鍵的值,資料庫會和引用表中字段的資料進行驗證,如果插入或更改的值不在被引用的表中,則插入失敗 外來鍵的作用就是保證...

外來鍵約束 外來鍵級聯操作

建立db2資料庫 create database db2 使用db2資料庫 use db2 外來鍵約束 標準語法 constraint 外鍵名 foreign key 本表外來鍵列名 references 主表名 主表主鍵列名 建表時新增外來鍵約束 建立user使用者表 create table u...