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