新聞中心
MySql如何創(chuàng)建外鍵
create
為蕭縣等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及蕭縣網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、蕭縣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
table
volunteer(
志愿者編號(hào)
varchar(6)
not
null,
志愿者姓名
varchar(8),
班級(jí)編號(hào)
varchar(4),
constraint
PK_V
primary
key
(志愿者編號(hào)));
create
table
class(
班級(jí)編號(hào)
varchar(4),
班級(jí)名稱
varchar(20),
學(xué)院
varchar(20),
constraint
PK_C
primary
key(班級(jí)編號(hào)),
班級(jí)編號(hào)
varchar
foreign
key
references
volunteer(班級(jí)編號(hào)));
你這個(gè)試下,我試了可以的
希望可以幫到你
SQL
創(chuàng)建外鍵語(yǔ)句的方法:constraint
外鍵名字
foreign
key
references
外鍵表(外鍵字段)
mysql 如何建立外鍵
詳細(xì)說(shuō)明可以百度搜我的博客: mysql foreign外鍵詳細(xì)使用方法和使用事項(xiàng)_2018_lcf
---------下面是使用方法
使用外鍵的前提:
1. 表儲(chǔ)存引擎必須是innodb,否則創(chuàng)建的外鍵無(wú)約束效果。
2. 外鍵的列類型必須與父表的主鍵類型完全一致。
3. 外鍵的名字不能重復(fù)(一般使用。
建外鍵表兩種方式(創(chuàng)建表時(shí)關(guān)聯(lián)/添加外鍵)
1) 第一種方式創(chuàng)建表時(shí)加外鍵使用實(shí)例:
mysql create table A( name char(12), id int(8) ,index(id))engine=innodb; //先建立A表,
mysql create table B( //建立B表,同時(shí)做外鍵
- id int(9),
- money int(9),
- index(id),
- foreign key(id) references A (id) //這個(gè)是必加項(xiàng),foreign key(B表要關(guān)聯(lián)的字段),references A表名 (對(duì)應(yīng)字段)
- on delete cascade on update cascade //這里是可選項(xiàng)的,只加一項(xiàng)或都不加都可以的,看需求.
- )engine=innodb; //這個(gè)必須是innodb類型,并且和A表的一致
第二方式在已有的表上做和A表關(guān)聯(lián)的外鍵(最好是新建好沒(méi)有記錄的,不然會(huì)因?yàn)橛涗泴?duì)不上而創(chuàng)建不成功)
mysql create table C( //這里先創(chuàng)建一個(gè)空表C
- id int(7),
- money int(5),
- index(id)
- )engine=innodb;
mysql alter table Cadd constraint abc //在C表上添加和表A關(guān)聯(lián)的外鍵,constraint 外鍵名(自己任意取)
- foreign key(id) references A(id) //和創(chuàng)建時(shí)一樣的輸入
- on delete cascade on update cascade; //一樣是可選項(xiàng),這行不寫(xiě)也可以通過(guò).
注: @以上的cascade是上面介強(qiáng)的四種模式之一,是可以替換成其它模式的,如寫(xiě)成on update set null
@還可以同時(shí)做兩個(gè)外鍵,如寫(xiě)成foreign key(id,money) references A(id,money) 即可
@兩張表關(guān)聯(lián)字段名可以取不一樣名字,但類型必須一致
mysql建立外鍵時(shí),多對(duì)多如何建立?
一張表中的主鍵只能有一個(gè),外鍵可以有多個(gè),如果一張表中多個(gè)列都需要被別的表的外鍵參考,需要使用候選碼(非空并且唯一),具體到你的這個(gè)問(wèn)題的需求可以考慮用如下方法解決:
把a(bǔ)表中的bookid和authorid都設(shè)置為非空并且唯一,即
create table a(bookid int not null unique, authorid int not null unique);
然后在book表和author表中就可以分別設(shè)置外鍵來(lái)參照a表中兩個(gè)不同的字段了。
打開(kāi)我的navicat,然后找到我的teacher表,選中它,然后點(diǎn)擊菜單欄上的‘design table'
2. 在彈出的對(duì)話框中找到“Foreign Keys”,然后單機(jī)。
3. 然后會(huì)出現(xiàn)一個(gè)設(shè)置外鍵的界面,一共有七列。簡(jiǎn)單介紹一下這幾列的意思。‘name’:可以不填,你一會(huì)保存成功系統(tǒng)會(huì)自動(dòng)生成。FieldName’:就是你要把哪個(gè)鍵設(shè)置為外鍵。這里選擇‘dept’,‘Reference DadaBase’:外鍵關(guān)聯(lián)的數(shù)據(jù)庫(kù)。‘Reference Table‘ :關(guān)聯(lián)的表 這里是dept表‘Forgin filed Names’:關(guān)聯(lián)的的字段,這里是code‘ondelete’:就是刪除的時(shí)候選擇的動(dòng)作。這里我的選擇是setNull,意思就是當(dāng)關(guān)聯(lián)的表刪除以后,teacher》dept字段會(huì)設(shè)置為null.
4. 設(shè)置完成后點(diǎn)擊‘save’保存退出,也可以點(diǎn)擊‘a(chǎn)dd Foreign Key’再添加一個(gè)外鍵。
打開(kāi)我的navicat,然后找到我的teacher表,選中它,然后點(diǎn)擊菜單欄上的‘design table’。如下圖:
2. 在彈出的對(duì)話框中找到“Foreign Keys”,然后單機(jī)。如下圖:
3. 然后會(huì)出現(xiàn)一個(gè)設(shè)置外鍵的界面,一共有七列。簡(jiǎn)單介紹一下這幾列的意思。‘name’:可以不填,你一會(huì)保存成功系統(tǒng)會(huì)自動(dòng)生成。FieldName’:就是你要把哪個(gè)鍵設(shè)置為外鍵。這里選擇‘dept’,‘Reference DadaBase’:外鍵關(guān)聯(lián)的數(shù)據(jù)庫(kù)。‘Reference Table‘ :關(guān)聯(lián)的表 這里是dept表‘Forgin filed Names’:關(guān)聯(lián)的的字段,這里是code‘ondelete’:就是刪除的時(shí)候選擇的動(dòng)作。這里我的選擇是setNull,意思就是當(dāng)關(guān)聯(lián)的表刪除以后,teacher》dept字段會(huì)設(shè)置為null。如圖
4. 設(shè)置完成后點(diǎn)擊‘save’保存退出,也可以點(diǎn)擊‘a(chǎn)dd Foreign Key’再添加一個(gè)外鍵。k如圖:
mysql表創(chuàng)建好后添加外鍵
首先要?jiǎng)?chuàng)建一個(gè)字段:alter table 表名 add 字段名 字段類型;
再添加外鍵約束:alter table 需加外鍵的表 add constraint 外鍵名 foreign key(需加外鍵表的字段名) references 關(guān)聯(lián)表名(關(guān)聯(lián)字段名);
注意:外鍵名不能重復(fù)
mysql數(shù)據(jù)庫(kù)如何添加外鍵
mysql增加外鍵的方法:1、在CREATE TABLE語(yǔ)句中,通過(guò)FOREIGN KEY關(guān)鍵字來(lái)添加外鍵;2、在ALTER TABLE語(yǔ)句中,通過(guò)ADD和FOREIGN KEY關(guān)鍵字來(lái)添加外鍵。
網(wǎng)站欄目:外鍵怎么在MySQL里建,mysql如何建立外鍵
鏈接URL:http://www.ef60e0e.cn/article/hcgeoh.html