詳細說明可以百度搜我的博客: mysql foreign外鍵詳細使用方法和使用事項_2018_lcf
創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設、網(wǎng)絡營銷策劃、重慶小程序開發(fā)、電子商務建設、網(wǎng)絡推廣、移動互聯(lián)開發(fā)、研究、服務為一體的技術(shù)型公司。公司成立10多年以來,已經(jīng)為近1000家成都宴會酒店設計各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務?,F(xiàn)在,服務的近1000家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。
---------下面是使用方法
使用外鍵的前提:
1. 表儲存引擎必須是innodb,否則創(chuàng)建的外鍵無約束效果。
2. 外鍵的列類型必須與父表的主鍵類型完全一致。
3. 外鍵的名字不能重復(一般使用。
建外鍵表兩種方式(創(chuàng)建表時關(guān)聯(lián)/添加外鍵)
1) 第一種方式創(chuàng)建表時加外鍵使用實例:
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表要關(guān)聯(lián)的字段),references A表名 (對應字段)
- on delete cascade on update cascade //這里是可選項的,只加一項或都不加都可以的,看需求.
- )engine=innodb; //這個必須是innodb類型,并且和A表的一致
第二方式在已有的表上做和A表關(guān)聯(lián)的外鍵(最好是新建好沒有記錄的,不然會因為記錄對不上而創(chuàng)建不成功)
mysql create table C( //這里先創(chuàng)建一個空表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)建時一樣的輸入
- on delete cascade on update cascade; //一樣是可選項,這行不寫也可以通過.
注: @以上的cascade是上面介強的四種模式之一,是可以替換成其它模式的,如寫成on update set null
@還可以同時做兩個外鍵,如寫成foreign key(id,money) references A(id,money) 即可
@兩張表關(guān)聯(lián)字段名可以取不一樣名字,但類型必須一致
主你要知道,建外鍵的作用是使用外鍵所引用的表來約束所要用到該外鍵的表!
明白了外鍵的特性,再來看看這個問題.既然表都建起來了,那么問題肯定不是出在建表結(jié)構(gòu)或者引用上。異常提示說違反約束規(guī)則.
分析你的問題,問題出在:
1.在你的航班表中并沒有數(shù)據(jù),這時候你往機票表中插入數(shù)據(jù)的時候并沒有外鍵所參考的主鍵給你引用,這時候因為找不到所要參考的引用,約束規(guī)則生效,使你在沒有主鍵參考的情況下不能往表中插入數(shù)據(jù).
2.問題分析同上面,但是不同的是航班表中有數(shù)據(jù),但是你機票表中插入數(shù)據(jù)的時候,外鍵的值并沒有在航班表中存在,同樣也會報相同的異常.
樓主在Java區(qū)也有個相同的問題。。。
通過工具NAVICAT 設計表時進行設計
打開NAVICAT,連接數(shù)據(jù)庫
右鍵目標表,選擇設計表
打開后選擇外鍵菜單,具體如圖:
分別設置外鍵名,字段,關(guān)聯(lián)數(shù)據(jù)庫、表、字段,以及刪除時操作,更新時操作方式然后點擊保存按鈕即可
也可以通過SQL方式完成對表外鍵的添加,如:
語法:alter table 表名 add constraint FK_ID foreign key(你的外鍵字段名) REFERENCES 外表表名(對應的表的主鍵字段名);
SQL 數(shù)據(jù)庫建表時怎么設置外鍵,
1 -- 創(chuàng)建測試主表. ID 是主鍵.
2 CREATE TABLE test_main (
3 id INT,
4 value VARCHAR(10),
5 PRIMARY KEY(id)
6 );
7 go
-- 建表時設置外鍵
1 CREATE TABLE test_sub (
2 id INT,
3 main_id INT,
4 value VARCHAR(10),
5 PRIMARY KEY(id),
6 FOREIGN KEY (main_id) REFERENCES test_main
7 );
8 go
sql怎么設置外鍵
可以在創(chuàng)建表的時候創(chuàng)建,也可以在創(chuàng)建表之后創(chuàng)建。
創(chuàng)建表時創(chuàng)建:
create table student
(id int primary key,
name char(4),
dept char(9)
sex char(4))
create table grade
(id int ,
grade int
constraint id_fk foreign key (id) references student (id)
)
或創(chuàng)建了兩表之后再建
alter table grade
add constraint id_fk foreign key (id) references student (id)
呵呵,希望能幫助你。
sql server中圖形界面如何設置外鍵
在那個屬性上右鍵 有約束 自己添加就OK了
mysql怎么設置外鍵?
ALTER TABLE b ADD CONSTRAINT c FOREIGN KEY(c) REFERENCES a(c) ON DELETE CASCADE ON UPDATE CASCADE; 哎呀。。好像寫反了。我寫的是把表B的c設置為外鍵了。。你改一下吧。
如何在數(shù)據(jù)庫的建立表的時候設置表的外鍵
1 -- 創(chuàng)建測試主表. ID 是主鍵.
2 CREATE TABLE test_main (
3 id INT,
4 value VARCHAR(10),
5 PRIMARY KEY(id)
6 );
7 go
-- 建表時設置外鍵
1 CREATE TABLE test_sub (
2 id INT,
3 main_id INT,
4 value VARCHAR(10),
5 PRIMARY KEY(id),
6 FOREIGN KEY (main_id) REFERENCES test_main
7 );
8 go
sql server 2008 怎么設置外鍵
建外鍵的前提是此外鍵必須是另外一個表的主鍵。建外鍵的步驟: 第一步打開要建外鍵表的設計器,右擊選擇“關(guān)系”。然后彈出“外鍵關(guān)系”窗體,我們選擇“添加”,然后點擊“表和列規(guī)范”后面的小按鈕,就會彈出另外一個窗體讓我們選擇主鍵表和列,選好之后點擊確定。然后我們INSERT和UPDATE規(guī)范,在更新規(guī)則和刪除規(guī)則有四個選項,分別是“不執(zhí)行任何操作”、“級聯(lián)”、“設置為NULL”、“設置默認值”。默認的不執(zhí)行任何操作。如果是“不執(zhí)行任何操作”,當我們刪除或更新主鍵表的數(shù)據(jù)時,會告訴用戶不能執(zhí)行刪除或更新該操作?!凹壜?lián)”的意思是當我們刪除或更新主鍵表的數(shù)據(jù)時,會刪除或更新外鍵表中所涉及的相關(guān)數(shù)據(jù)的所有行。 “設置Null”的意思是當我們刪除或更新主鍵表的數(shù)據(jù)時,外鍵表中的外鍵列的值會設為Null,但前提是該列允許為空。 “設置默認值”的意思是如果我們將外鍵列定義了默認值,當我們刪除或更新主鍵表的數(shù)據(jù)時,外鍵表中的外鍵列的值設為定義的默認值。 當然我們可以用代碼創(chuàng)建,當我們在創(chuàng)建數(shù)據(jù)庫表T——Card時只要加上一句話就OK啦,“Foreign key (studentNo) references T_Student(studentNo)"。如果我們已經(jīng)創(chuàng)建了改表,那如何用代碼實現(xiàn)了,這也很簡單也就一句話“ add constraint CMPKey(外鍵名) foreign key(studentNo) references T_Student(studentNo)”。
sql中怎樣創(chuàng)建外鍵約束
在創(chuàng)建表之后,添加外鍵約束:
alter table yuangong add constraint fk foreign key (部門罰) references bumen(部門號)
或者在創(chuàng)建表的時候添加外鍵
foreign key (部門號) references bumen(部門號)放在最后,用","與列分隔
數(shù)據(jù)庫中,一對多的時候外鍵設置在多的那張表嗎?如果一對一的時候,外鍵應該設置在哪里?多對多的時候,
首先,外鍵引用的那個列在主表中必須是主鍵列或者唯一列。
所以1:n的肯定把外鍵建立在n的那張表上。
1:1,一般要看誰是主表,誰是附屬表,外鍵當然建立在附屬表中。
n:m的情況,需要建立一個關(guān)系表,兩個原表和其關(guān)系分別是1:n,1
:m
數(shù)據(jù)庫語句怎么加外鍵
1,創(chuàng)建表的時候添加:foreign key (你的外鍵) references (表名)(字段名);
2,創(chuàng)建好之后修改:
alter table dbo.mh_User
add constraint FK_mh_User_..._id foreign key (你的外鍵) references (表名)(字段名);
Sql server怎樣創(chuàng)建主外鍵關(guān)系
在要設置關(guān)系的外鍵表中,右擊關(guān)系→添加→在表和列規(guī)范中選擇關(guān)聯(lián)的主表再選擇外鍵表與其關(guān)聯(lián)的字段
當前文章:mysql怎么引用外建 mysql調(diào)用外部程序
文章出自:http://bm7419.com/article16/ddejcgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、自適應網(wǎng)站、搜索引擎優(yōu)化、小程序開發(fā)、品牌網(wǎng)站設計、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)