www.gsyw.net > sql中两个表中字段都不是主键,能设主外键吗

sql中两个表中字段都不是主键,能设主外键吗

不可以.所谓外键:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的联系.以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表. 至于主键:主关键字是被挑选出来,作表的行的惟一标识的候选关键字.一个表只有一个主关键字.主关键字又可以称为主键.

不能,因为外键必是唯一的,但其中的一个字段不一定是唯一的.所以会报错!

当然能了,比如有一个关系是一对多的,在并合关系的时候就把一端的主键并到多端那里作为外键,那那个关系的主键就是本来的主键+外键,外键是一端的主键不变.SQL语句就自己写了,既然你的题是从软考那拿来的,那肯定有答案的,我就不费心思写了

一个表的外键必须指向另一个表的主键,主键,外键主要是其约束作用的.

create table tablename ( id int not null primary key, name char(8) constraint foreign key(id) references table2(id) )

FOREIGN KEY (读者编号)这个去掉 不需要加上去 直接后面的就行了,前提是你的表都建好了再加的

我是这么玩的 CREATE TABLE `dispatch_cost` ( `id` varchar(50) NOT NULL COMMENT 'id', `belong` varchar(15) DEFAULT NULL COMMENT '设计交付日期', …… …… primary key (`id`), constraint `FK_DISPATCH_ID` foreign key (`id`) references `dispatch_order` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='成本表';

什么意思?是一个表的一个字段 引用 2表 主键 这种是否可行忘记了,试一下就知道了,但从逻辑上肯定不建议这么做, 因为这样一来,数据受的约束太大了.还是:一个表的主键,被2个表的2个字段引用 这种肯定没有问题

主键就是自己设定的字段,该字段不能为空,而且该字段的值必须唯一,外键就是在主表中可以重复出现,但是它是另一个表的主键,对过外键使两个表相关.

给你有一个表的图片.字段跟属性还有列是一个概念、例子:图片中的课程号,课程名,先修课号都是列(或者字段,属性)一竖是他们对应的值.元组和记录是一个概念、例子:图片中的每一横行就是一条记录或者说是一个元组.主键是唯一标示一横行的特定字段上的约束.例子:图片上的课程号字段是主键,这个字段竖着的值不能重复.外键是将表与表联系的约束.例子:字段先修课号就是外键,对应竖着的值必须取主键字段(课程号)已经有的值,图片中的表、主键(课程号)的值是1,2,3 所以 外键(先修课号)的值只能取 空(null) 或者(1,2,3)

网站地图

All rights reserved Powered by www.gsyw.net

copyright ©right 2010-2021。
www.gsyw.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com