複合主鍵外鍵怎麼設置?
在SQL中,如何在複合主鍵上創立外鍵?
--不能一列引用兩列,必髯數列對應
use tempdb
go
create table s
(
sid varchar(20),
sname varchar(20),
ssex varchar(2) check(ssex='男' or ssex='女') default '男',
sage int check(sage between 0 and 100),
sclass varchar(20),
constraint event_key primary key (sid,sclass)----創建複合主鍵
)
create table t
(
teacher var埂har(20) primary key,
sid varchar(20) not null,
sclass varchar(20) not null,
num int,
foreign key(sid,sclass) references s(sid,sclass)
)
關於 複合主鍵的外鍵設置問題
constraint fk_ tp foriegn key (topic_title,topic-publish) references topic(title,publishdate)
Oracle中複合主鍵怎麼寫?有沒有複合外鍵?
創建成績表T_GRADE,並把學號S_ID+課程編號C_ID設為複合主鍵。Create Table T_GRADE( --學生成績表
S_ID Number(8), --學生編號
C_ID number(4), --課程編碼
G_PS varchar2(6), --平時成績
G_KS varchar2(6), --考試成績
Constraint Grade_pk Primary Key (S_ID,C_ID)); --表級複合主鍵
可以設置複合外鍵。設置方法與複合主鍵一樣,Primary Key(...) 換成
FOREIGN KEY(...) REFERENCES 主表(...)
或 ALTER TABLE 表 ADD CONSTRAINT 外鍵名
FOREIGN KEY(複合外鍵) REFERENCES 主表(主鍵|唯一鍵);
MySQL如何創建主鍵,外鍵和複合主鍵
courseidint,
scoreint,primarykey(studentno) );
②修改時:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
前提是原先沒有設置主鍵。
2.外鍵語法①創建時:createtablesc (studentnoint,
courseidint,
scoreint,foreignkey(courseid) );②修改時:ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[約束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用組合主鍵
如果一列不能唯一區分一個表裡的記錄時,可以考慮多個列組合起來達到區分表記錄的唯一性,形式①創建時:createtablesc (studentnoint,
courseidint,
scoreint,primarykey(studentno,courseid) );
②修改時:alter table tb_name add primary key (字段1,字段2,字段3);
怎麼給聯合主鍵設置外鍵啊
GUI界面,先右鍵表B,表C,選擇設計,然後選擇表B字段b1設置主鍵,表C字段c1設置主鍵,然後保存關閉。右鍵表A,選擇設計,按住shift然後選擇a1,a2設置為聯合主鍵,然後右鍵a1列,選擇關係,添加後右面點擊表和列規範,彈出界面,左邊選擇主鍵表主鍵列,右面選擇本表字段a1即可。a2同樣設置。
兩個關聯的表,一個有一個主鍵,另一個有聯合主鍵,兩個表中的主鍵之間有關聯的屬性,外鍵該如何設置呢?
根據樓主的描述 可以知道 兩個表 有3個字段都是主鍵 想建立個外鍵約束
這個是不允許的 已經是主鍵了 就沒有辦法在設置外鍵了
樓主一定要這樣做的話 就多添加一個列 和你要約束的列 也就是主鍵 值整的一樣 然後在這個列上面做外鍵 那就能達到你要的效果
有什麼困難可以隨時找我 希望採納
聯合主鍵和外鍵能不能同時存在,能的話怎麼做
主鍵作為外鍵,必須是主鍵,你的主鍵是複合主鍵,那麼你作為外鍵的時候也必須是複合主鍵作為外鍵
mysql如何對聯合主鍵建立外鍵
create table parent(c1 number,c2 number,
primary key(c1,c2));
create table child (c1 number primary key,
c2 number,c3 number,
foreign key(c2,c3) references parent(c1,c2));
聯合主鍵中,其中一個鍵設為另一個表的外鍵
我覺得你的表設計的有問題,為什麼class表中,主鍵為(cno,class_no)?這兩個屬性都是什麼含義?是否需要同時存在,應該都是班級號吧,我覺得只要class_no就可以了,這樣就正常設置外鍵就可以了。
如果你設置聯合主鍵,那麼外鍵必須同時引用兩個主鍵屬性,否則只能用check約束來實現參照關係。
Hibernate複合主鍵作外鍵該怎麼樣配置
drop database choose ; create database choose ; use choose; --student create table student( sId char(10) not null primary key, sName char(20) not null, sPwd char(20) not null );
create unique index PK_student on student(sId); --course create table course( coId char(10) not null primary key, coName char(20) not null, credit float(53) not null );
create unique index PK_course on course(coId); --chooseCourse create table chooseCourse( coId char(10) not null, sId char(10) not null, grade float(53), primary key(coId,sId), foreign key (coId) references course(coId), foreign key (sId) references student(sId) );