sql设置多个主键后,怎么实现建立关系

现在有两个表table1,table2,两个表都包含有a、b、c三个字段,现在把表table1的a、b、c设为主键,那么两表怎么建立关系,
alter table table2 add constraint fk_table1_table2 foreign key (a) references table1 (a)
像这样写会报错,怎么解

sql

7个回答

设置多个主键,就需要把多个主键都一起做外键关联

foreign key (a,b,c) references table1 (a,b,c)

要不就建个关系表存吧

 foreign  key(a,b,c) references table1(a,b,c));
    alter table table2 add constraint fk_table1_table2 foreign key (a,b,c) references table1 (a,b,c)

foreign key (a,b,c) references table1 (a,b,c),请采纳oyljerry用户的建议

a,b,c字段两张表都有,是不是因为这三个字段都是某个事物的一个属性,应该可以把这三个字段提取出来建个实体加个主键,这两张表引用这个主键。或者这两张表中,一张表本身就引用了另一张表的这三个字段,索性不要用复合主键,另外添个主键,其它表引用这个实体的时候,引用这个主键
select t1.* , t2.* from table1 t1 inner join table2 t2 on t1.a = t2.a and t1.b=t2.b and t1.c=t2.c

a,b,c字段两张表都有,是不是因为这三个字段都是某个事物的一个属性,应该可以把这三个字段提取出来建个实体加个主键,这两张表引用这个主键。或者这两张表中,一张表本身就引用了另一张表的这三个字段,索性不要用复合主键,另外添个主键,其它表引用这个实体的时候,引用这个主键
select t1.* , t2.* from table1 t1 inner join table2 t2 on t1.a = t2.a and t1.b=t2.b and t1.c=t2.c

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SQL——主键和外键的关系
主键保证了一张表数据的唯一性,外键是另一张表的主键。
SQL里主键怎么设置
我在SQL SERVER 2000 里已经建了一个TABLErn没设主键,我想在ASP.NET里加一个自增的主键,可以吗
sql建立表怎么设主键?
delphi6+access2000程序:rnquery1.sql.text:='create table zg_cod(rn [zgh] text(3),rn zgmch text (16));'rn打开access,表是建立了,不过字段zgh并没有rn设为主键(左边没有key标志)。rn请问如何实现?
Sql Server主键与外键的关系?
在Sql Server中创建外键约束时,主表中的那一列一定要是主键吗?从表中的列也必须是主键吗?
这个关系怎么建立.
学生选课程,学生必须在数个课程中选2个课程rn我建立表:学生表 列(id,xingming,kecheng1,kecheng2)rn 课程表 列(id,kechengming)rnrn如果在access中建立关系不可能,1个学生对应于2个课程项,怎么建立这种关系呢,是否要第三个表呢,求高手指教
这么的关系怎么建立。
三个表A,B,C,都有一个字段---字段1rn字段1是在A表中生成,字段1在A表中是可重复的。rnB表C表的字段1是根据A表的字段1生成的。规则是提取A表里不重复的字段1.rn请问,这三个表之间怎么建立关系?rn是直接在关系设计器里面设计呢还是需要建立联合主键?
怎么建立关系表?
问题一:字典表和类别表是分开建立还是建在一张表中?rn问题二:文章的评论表、评论的回复、留言是建立三种表还是建立一张表好?rnrn希望大家能指点一二,谢谢!
如何建立这样的主键外键关系
表1rnrnid namernrnrn表2 rnrnid1 id2 otherfieldsrnrn我想让表1的id作为主键表rn表2的两个字段id1和id2作为从键,可是这样的关系是无法建立的,如何处理?rn就是说id1和id2这两个字段都要以表1的id作为主键rnrn并且表1做删除操作时,只要id1或id2有1个的值在表1中被删除,表2的这条记录也跟着级联删除
怎么在SQL SERVER 中建立表的关系
-
sql关系图中两表建立关系后的删除操作
例如存在两张表,table1为人员表,table2为设备表rntable1rnuserid usernamern001 aaarn002 bbbrn003 cccrnrntable2rnequipmentid equipmentname useridrn1001 aaaa 001rn1002 bbbb 002rnrn两表建立什么样的关系(或者说怎么做),才能使在删除table1中的数据时会根据userid在table2中的存在决定是否删除,如果存在(如001),则删除不成功,如果不存在(如003),这可以删除。rnrn
>>>建立表格时将多个字段设置为主键的sql语句怎么写??<<<<
在线求~~~rn谢谢了~~
SQL设置主键问题
用sql语句创建数据库表时rnrn如何编写sql语句设置主键为必填,而且是以字符串开头rnrn例如:rn员工编号,主键,该栏必填,必须以“ABCD”开头rnrnrnsql语句如何编写??rn求解....
sql设置主键问题
在直接用T-SQL语言创建表的时候,如果要创建表的主键,一般用primary key,比如:rncreate table test_2([id] int primary key,[no] varchar(20))rninsert test_1(id,no)rnselect '1','1' union allrnselect '2','2' union allrnselect '3','3'rnrn那如果要两列同时作为主键,该怎么写呢?rn
不能设置SQL主键
把ACCESS移植为SQL后,有些表不能设置主键,出现下面提示:rn'CUSTOMER' tablern- Unable to create index 'PK_CUSTOMER'. rnODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 1. Most significant primary key is '089699@cpc.com.tw'.rn[Microsoft][ODBC SQL Server Driver][SQL Server]Could not create constraint. See previous errors.rn[Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been terminated.rnrn
不是主键的字段,在两个表中,怎么建立他们的关系?
通道表channelrn有字段id,channelid,channelnamernA表rn有字段id,channelid,field1,field2rnB表rn有字段id,channelid,field3,field4rn现在,我想:在A,B建立关系,使得在B中channelid出现的记录值不能是A中channelid的值没有的,就是说B中不能出现A中没有的channelIDrn怎么弄?
SQL语句建立主键问题
我有一张学生选课表 (sno,tno,cno)rn设置这三个是主键怎么用语句写呀
设置主键的SQL语句怎么写?
设置主键的SQL语句怎么写?谢谢!!!
SQL 2005 怎么设置主键自动增加?
输入数据时不输入主键,需要主键由数据库或VS2005自动设置,怎么实现?
这种,怎么设置主键
一张User表,包含ID列和UserName列,rnID列是自增列,UserName列又是不能重复的列,rn这种情况下,怎么设置主键?
SQLserver怎么设置主键?
SQLserver怎么设置主键?
ORACLE怎么设置主键
在已经创建的表上?谢谢
在sql的关系图中建立关系的初级问题
1,关系图中的表间的关系连线,有时建立后两端都有小钥匙,有时只有一端有。rn有什么区别啊?rn2,如果示:A(a1)------>B(b1)(键头代表小钥匙,a1与b1代表建立关系的字段)是不是a1是A的主键,在b中当于外键。就是说a1中唯一的,而b1可以从复。rn
怎么建立多个库文件?
我建立一个应用后,后面自动会有一个库文件rn可我不知道怎么建立多个库文件?rn还有不同的窗口怎么放到不同的库中?
怎么建立多个web.config
RT ,rn1个项目里就只能有1个web.config么rn我想对多个文件的根目录进行forms认证,但是复制到他的跟目录下,就提示错误,什么虚拟目录没创建应用程序rnrn这个要怎么解决
SQL演练-建立关系表
建立关系表 创建goods表 create table goods( id int unsigned primary key auto_increment not null, name varchar(150) not null, cate_name varchar(50), brand_name varchar(50), price int not null, is_show bit...
SQL Server建立关系问题
有三个表:rn人员:ID,姓名.....rn人员:ID,负责人ID,立项人ID,项目ID,标识rn项目:ID,名称......rn说明:负责人与立项人都属于人员表,如何建立表之间的关联?
怎么建立主次关系的数据库
主服务器可以访问几个全国各地的分服务器,但是分服务器不能访问主服务器。怎么才可以呢?谢谢。我是刚刚学的新人。
一对多的关系怎么建立?
比如有两张表,一张表的主键约束另一张表的4个字段,怎么样建立他们的关系?
怎么建立表之间的关系。
一个表用BiaoID字段记录数据库中其他表的信息,用JiLuID字段记录每个标每天产生的记录编号。且以BiaoID和JiLuID做复合主键。表如下:rn BiaoID JiLuID ...rn 1 1 ...rn 1 2 ...rn 2 1 ...rn 2 2 ...rn 2 3 ...rn 2 4 ...rn ... ... ...rn上面表示BiaoID为1的那个表每天产生2条记录,而BiaoID=2的表每天产生4条记录rn另一个表来刻画每个表的辅助信息,如这个表的录入人,录入的日期,录入人所在的部门等,以BiaoID为主键rn BiaoID LuRuRiqi LuRuRen LuRuBuMenrn 1 2004-12-1 xxx xxxrn 2 2004-12-2 xxx xxxrn第三个表为实际记录数据的表,以BiaoID,JiLuID,和LuRuRiQi(录入日期)为复合主键,示例如下:rn BiaoID JiLuID LuRuRiQi Value1 Value2 rn 1 1 2004-12-1 ... ...rn 1 2 2004-12-1 ... ...rn 2 1 2004-12-1 ... ...rn 2 2 2004-12-1 ... ...rn 2 3 2004-12-1 ... ...rn 2 4 2004-12-1 ... ...rn ... ... ... ... ...rn请问这个表设计的合理吗?都是那些字段之间有什么关联关系?我画关系图时老提示出错,郁闷,谁能帮我想想有什么可能出错?好像提示约束XXX已经存在。
怎么用sql语句实现组合主键
如题
在DataSet中的多个表建立关系?
DataSet中的多个表,可否同时在不同的DataGrid中显示,如何给它们建立关系,达到可以级联删除或更新,最后批更新数据库? 感谢!感谢!感谢!感谢!rn关键是如何在dataset中建立多表强制关系
SQL 2000 无法设置主键,
请大家帮帮忙,急啊, rn是这样的,一个表有5百多万数据,我把ID设置主键,ID这列没有重,也没有空, 为什么不能设置主键了。rn
自增主键的sql设置语句
ALTER TABLE Product ADD id int IDENTITY (1,1) PRIMARY KEY
sql server主键设置问题
primary key之后还要加上not null吗?rnrn[code=SQL]create table testrn(rnid int primary key,rnname varchar(40) rn)[/code]rnrn
SQL 设置自增主键的值
dbcc checkident ('tableName', reseed,6)语句中2个参数:tableName,我们要修改自增值的表名, 6 设置自增的当前值,我们可以根据自己的需要调整这些数据. 函数具体的运行效果:     1.讲当前自增字段值, 移动到设置值的位置     2.新数据插入时会根据当前字段值 ,加上等差间隔(通常是1),插入到数据库,生成自增id的过程不会依照数据库内已
SQL Server2008如何设置主键
我想把某一列设置为主键请问如何编写代码或者如何进行操作,请给出详细过程
sql server 一个表可以设置多个主键吗?
在sql server 7.0下,有一个表有A1,A2,A3三个字段,我想使其三个字段同时为主键,有可能实现吗?rn即:rn A1 A2 A3rn a b crn a d e --为错误(a重复)rn h d i --为错误(d重复)rn T Y c --为错误(c重复)rn批量插入时只要三个中其中一个已经重复,则出错,我就可以回滚数据。
建立主键后,是不是默认该聚集索引了?
在oracle9i中,我建立了主键constraint PK_AA primary key (COL_NAME),是否同时已创建COL_NAME的聚集索引,即是否等同于constraint PK_AA primary key (COL_NAME) CLUSTERED?rn如果此主键不需要建立COL_NAME的聚集索引,是否只要constraint PK_AA primary key (COL_NAME) UNCLUSTERED?rn立马给分rn
主键,外键,多个主键问题??
3个表:rnstudentinfo(sno,sname,ssex,school,sbirth)rncoursinfo(cno,cname,credit)rnscinfo(sno,cno,score)rn显然第一个表主键是sno,第二个表主键是cno,但是第三个表的主键应该是(sno,cno)的组合吧?那怎么弄呢?可以用两个外键的组合当主键吗?
Access 中怎么设置多个字段为主键
多个字段为主键
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview