mysql下,每個表只能有一個主鍵。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)從事做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)公司依托強大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!
但這個主鍵可以由一個屬性或多個屬性組合構(gòu)成。多個屬性作位主鍵的話,則這個主鍵可以稱為“復(fù)合主鍵”。
復(fù)合主鍵的示例(以id列和name列合并構(gòu)成主鍵):
create table tb_name
(id int,
name varchar(20),
constraint pk_name primary key (id,name)
)
一張表中的主鍵只能有一個,外鍵可以有多個,如果一張表中多個列都需要被別的表的外鍵參考,需要使用候選碼(非空并且唯一),具體到你的這個問題的需求可以考慮用如下方法解決:
把a表中的bookid和authorid都設(shè)置為非空并且唯一,即
create table a(bookid int not null unique, authorid int not null unique);
然后在book表和author表中就可以分別設(shè)置外鍵來參照a表中兩個不同的字段了。
打開我的navicat,然后找到我的teacher表,選中它,然后點擊菜單欄上的‘design table'
2. 在彈出的對話框中找到“Foreign Keys”,然后單機。
3. 然后會出現(xiàn)一個設(shè)置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思?!畁ame’:可以不填,你一會保存成功系統(tǒng)會自動生成。FieldName’:就是你要把哪個鍵設(shè)置為外鍵。這里選擇‘dept’,‘Reference DadaBase’:外鍵關(guān)聯(lián)的數(shù)據(jù)庫?!甊eference Table‘ :關(guān)聯(lián)的表 這里是dept表‘Forgin filed Names’:關(guān)聯(lián)的的字段,這里是code‘ondelete’:就是刪除的時候選擇的動作。這里我的選擇是setNull,意思就是當(dāng)關(guān)聯(lián)的表刪除以后,teacher》dept字段會設(shè)置為null.
4. 設(shè)置完成后點擊‘save’保存退出,也可以點擊‘a(chǎn)dd Foreign Key’再添加一個外鍵。
打開我的navicat,然后找到我的teacher表,選中它,然后點擊菜單欄上的‘design table’。如下圖:
2. 在彈出的對話框中找到“Foreign Keys”,然后單機。如下圖:
3. 然后會出現(xiàn)一個設(shè)置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思?!畁ame’:可以不填,你一會保存成功系統(tǒng)會自動生成。FieldName’:就是你要把哪個鍵設(shè)置為外鍵。這里選擇‘dept’,‘Reference DadaBase’:外鍵關(guān)聯(lián)的數(shù)據(jù)庫。‘Reference Table‘ :關(guān)聯(lián)的表 這里是dept表‘Forgin filed Names’:關(guān)聯(lián)的的字段,這里是code‘ondelete’:就是刪除的時候選擇的動作。這里我的選擇是setNull,意思就是當(dāng)關(guān)聯(lián)的表刪除以后,teacher》dept字段會設(shè)置為null。如圖
4. 設(shè)置完成后點擊‘save’保存退出,也可以點擊‘a(chǎn)dd Foreign Key’再添加一個外鍵。k如圖:
mysql組合主碼外碼設(shè)置的方法步驟是。
1、設(shè)置mysql數(shù)據(jù)庫密碼[root@localhost]#mysqladmin-urootpassword"密碼"。
2、Linux下MYSQL訪問數(shù)據(jù)庫。
3、訪問mysql數(shù)據(jù)庫命令:[root@localhost]#mysql-uroot-p--敲回車輸入密碼。