sql資料庫兩個外來鍵做聯合主鍵

時間 2021-10-14 22:23:54

1樓:匿名使用者

聯合主鍵是有著特殊的需求的。

建表的時候建立

create table 表名 (欄位名1 int not null,

欄位名2 nvarchar(13) not null primary key (欄位名1, 欄位名2),

欄位名3…………

欄位名n………… )

或者建表之後修改表結構

alter table 表名 with nocheck addconstraint [pk_表名] primary key nonclustered

([欄位名1],

[欄位名2])

2樓:學有止境

lz的說法有誤

主鍵不能建立在外來鍵約束上,但是它可以建立在外來鍵約束對應的列上。

所以你要做的就是對兩個外來鍵約束對應的列加複合主鍵alter table 表名 with nocheck addconstraint [pk_表名] primary key nonclustered

([欄位名1],

[欄位名2]

) -----------------------------------

zjwssg解元同學

外來鍵約束對應的列也可以是唯一鍵哎

3樓:匿名使用者

樓上的,你說「主鍵不能建立在外來鍵約束上,但是它可以建立在外來鍵約束對應的列上。

」這不僅僅是可以而已吧,應該是外來鍵約束對應的列它必然得是主鍵吧----

學有止境 - 初入江湖 四級

受教了,哈哈,謝謝解答。

4樓:匿名使用者

create table student1(s1id int not null identity,sname varchar(100),

primary key aid

)create table student2(s2id int not null identity,sname varchar(100),

primary key aid

)create table course

(cid int not null identity,s1id int not null,

s2id int not null,

cname varchar(100),

primary key (cid),

foreign key s1id references student1(s1id),

foreign key s2id references student2(s2id)

)create table ccc

(s1id int not null,

s2id int not null,

primary key(s1id,s2id))就這樣 ,但是感覺沒什麼意義

資料庫的兩個表通過主鍵和外來鍵相關聯如果修改其中表的資料會不會自動修改另表的資料啊

現有倆表a,b,a表有主鍵,b表建立外來鍵關聯到a表修改a表,若修改之後的結果是b表外來鍵欄位的值在a表中找不到了,則會報錯,不允許進行此修改,其他情況可以任意修改。修改b表,必須保證修改後b表外來鍵欄位的值依然能在a表中找到,否則會報錯。倆表自己的修改,只會影響自己表的資料,對其他表無影響。 灝忓...

資料庫表中的主鍵和外來鍵如何關聯

扈琇保瀚 主鍵 編輯本段 概念 主關鍵字 主鍵,primarykey 是被挑選出來,作表的行的惟一標識的候選關鍵字。一個表只有一個主關鍵字。主關鍵字又可以稱為主鍵。主鍵可以由一個欄位,也可以由多個欄位組成,分別成為單欄位主鍵或多欄位主鍵。編輯本段 作用 1 保證實體的完整性 2 加快資料庫的操作速度...

資料庫中如何讓外來鍵自動填充主鍵的值

1.sql的主鍵和外來鍵的作用 2.外來鍵取值規則 空值或參照的主鍵值。1 插入非空值時,如果主鍵表中沒有這個值,則不能插入。2 更新時,不能改為主鍵表中沒有的值。3 刪除主鍵表記錄時,你可以在建外來鍵時選定外來鍵記錄一起級聯刪除還是拒絕刪除。4 更新主鍵記錄時,同樣有級聯更新和拒絕執行的選擇。3....