詳細說明可以百度搜我的博客: mysql foreign外鍵詳細使用方法和使用事項_2018_lcf
創新互聯建站始終堅持【策劃先行,效果至上】的經營理念,通過多達10年累計超上千家客戶的網站建設總結了一套系統有效的全網整合營銷推廣解決方案,現已廣泛運用于各行各業的客戶,其中包括:航空箱等企業,備受客戶贊譽。
---------下面是使用方法
使用外鍵的前提:
1. 表儲存引擎必須是innodb,否則創建的外鍵無約束效果。
2. 外鍵的列類型必須與父表的主鍵類型完全一致。
3. 外鍵的名字不能重復(一般使用。
建外鍵表兩種方式(創建表時關聯/添加外鍵)
1) 第一種方式創建表時加外鍵使用實例:
mysql create table A( name char(12), id int(8) ,index(id))engine=innodb; //先建立A表,
mysql create table B( //建立B表,同時做外鍵
- id int(9),
- money int(9),
- index(id),
- foreign key(id) references A (id) //這個是必加項,foreign key(B表要關聯的字段),references A表名 (對應字段)
- on delete cascade on update cascade //這里是可選項的,只加一項或都不加都可以的,看需求.
- )engine=innodb; //這個必須是innodb類型,并且和A表的一致
第二方式在已有的表上做和A表關聯的外鍵(最好是新建好沒有記錄的,不然會因為記錄對不上而創建不成功)
mysql create table C( //這里先創建一個空表C
- id int(7),
- money int(5),
- index(id)
- )engine=innodb;
mysql alter table Cadd constraint abc //在C表上添加和表A關聯的外鍵,constraint 外鍵名(自己任意取)
- foreign key(id) references A(id) //和創建時一樣的輸入
- on delete cascade on update cascade; //一樣是可選項,這行不寫也可以通過.
注: @以上的cascade是上面介強的四種模式之一,是可以替換成其它模式的,如寫成on update set null
@還可以同時做兩個外鍵,如寫成foreign key(id,money) references A(id,money) 即可
@兩張表關聯字段名可以取不一樣名字,但類型必須一致
alter table table_name add constraint fk_column_id foreign key(column) references 主鍵表 (column_id);
create table t1
(id int primary key,
name varchar(20)
);
create table t2
(
remark varchar(50),
p_id int references t1(id) /*表示列p_id外鍵關聯于表t1的列id*/
);
需要注意的問題:
1、t1的id必須為key
2、關聯的2個列的數據類型必須一致且必須長度完全一樣。
數據庫mysql
建立外鍵的前提:本表的列必須與外鍵類型相同(外鍵必須是外表主鍵)。
外鍵作用:使兩張表形成關聯,外鍵只能引用外表中的列的值!
指定主鍵關鍵字:foreignkey(列名)
引用外鍵關鍵字:references外鍵表名(外鍵列名)
事件觸發限制:ondelete和onupdate,可設參數cascade(跟隨外鍵改動),restrict(限制外表中的外鍵改動),setNull(設空值),setDefault(設默認值),[默認]noaction
例如:
outTable表主鍵id類型int
創建含有外鍵的表:
createtabletemp(
idint,
namechar(20),
foreignkey(id)referencesoutTable(id)ondeletecascadeonupdatecascade);
說明:把id列設為外鍵參照外表outTable的id列當外鍵的值刪除本表中對應的列篩除當外鍵的值改變本表中對應的列值改變。
自己實踐才能完全了解外鍵的作用關鍵是:事件觸發限制的作用
mysql添加外鍵:
為已經添加好的數據表添加外鍵:
語法:alter table 表名 add constraint FK_ID foreign key(你的外鍵字段名) REFERENCES 外表表名(對應的表的主鍵字段名);
例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
//FK_ID是外鍵的名稱
/*
CREATE TABLE `tb_active` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `user_id_2` (`user_id`),
CONSTRAINT `FK_ID` FOREIGN KEY (`user_id`) REFERENCES `tb_user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
*/
當前文章:mysql中的外鍵怎么寫 mysql外鍵語句
路徑分享:http://m.kartarina.com/article34/hgsepe.html
成都網站建設公司_創新互聯,為您提供云服務器、微信小程序、企業建站、網站收錄、手機網站建設、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯