mysql建立外來鍵案例 MySQL外來鍵例項

2021-10-17 12:30:34 字數 2015 閱讀 9532

外來鍵例項

性別表create table gender(

gid int auto_increment primary key not null,

gender char(10));

insert into gender(gender) values

('male'),

('female'),

('unknown');

# 乙個表只能有乙個主鍵, 但是主鍵可以是由不為空唯一表示的兩列(多列)構成。

部門表create table department(

did int auto_increment primary key not null,

department char(20));

insert into department(department) values

('hr'),

('it'),

('accounting'),

('marketing'),

('security');

員工表(一對多,乙個部門可以對應多個員工,性別也是)

create table staff(

sid int auto_increment primary key not null,

name char(20),

department_id int,

gender_id int,

constraint fk_staff_department_id foreign key (department_id) references department(did),

constraint fk_staff_gender_id foreign key (gender_id) references gender(gid));

檢視表結構

desc staff;

檢視外來鍵表

show create table staff;

插入員工

insert into staff(name, department_id, gender_id) values

('alex', 1, 1),

('ana', 2, 2),

('bob', 3, 1),

('cathy', 2, 2),

('deja', 5,3),

('frank', 1, 3),

('helen', 4, 2),

('ira', 5, 1),

('zoe', 3, 2);

工作站create table workstation(

wid int auto_increment not null,

ws_name char(10),

primary key(wid));

insert into workstation(ws_name) values (ws1), (ws2), (ws3), (ws4), (ws5));

員工和工作站對應表(多對多,乙個員工可以用多個工作站,乙個工作站可以別多個員工使用)

create table staff_workstation(

sw_id int auto_increment not null,

staff_id int,

workstation_id int,

primary key (sw_id),

unique uq_sid_wid (staff_id, workstation_id), # 表示聯合唯一索引

constraint fk_staff_workstation_staff_id foreign key (staff_id) references staff(sid),

constraint fk_staff_workstation_id foreign key (workstation_id) references workstation(wid));

# int型別,如果插入的是浮點數,會被四捨五入,例如插入1.5,插入後會自動變成2。

子表中所外來鍵字段的資料型別必須與父表中所參考的字段的資料型別一致

mysql建立外來鍵

建立外來鍵的前提 本表的列必須與外來鍵型別相同 外來鍵必須是外表主鍵 外來鍵作用 使兩張表形成關聯,外來鍵只能引用外表中的列的值!指定主鍵關鍵字 foyunmkreign key 列名 引用外來鍵關鍵字 references 外來鍵表名 外來鍵列名 事件觸發限制 on delete和on updat...

mysql建立外來鍵報錯 Mysql表建立外來鍵報錯

資料庫表a create table task desc tab id int 11 primary key not null comment 自增主鍵 auto increment,taskname varchar 200 not null comment 任務名字 sqlname varchar...

mysql如何建立外來鍵

這個sql語句用sql front匯出後的結果是 drop table if exists comment create table comment id int 11 not null,user varchar 11 default null,email varchar 11 default nu...