做主键的是不是不能做为外键?

在一张表里做主键的是不是不能做为外键?

第1个回答  推荐于2017-09-12

可以,SQL Server2014通过。

本回答被网友采纳
第2个回答  2017-09-12
应该是可以的啊. mysql> CREATE TABLE course ( -> course_NO INT PRIMARY KEY -> );Query OK, 0 rows affected (0.19 sec)mysql>mysql> CREATE TABLE teacher ( -> teacher_ID INT PRIMARY KEY -> );Query OK, 0 rows affected (0.08 sec)mysql> CREATE TABLE temp ( -> course_NO INT, -> teacher_ID INT, -> foreign key(course_NO) references course(course_NO), -> foreign key(teacher_ID)references teacher (teacher_ID), -> primary key(course_NO,teacher_ID) -> );Query OK, 0 rows affected (0.10 sec)
第3个回答  2014-12-25
可以的,本人亲测——postgres
第4个回答  2013-07-14
你好,首先你得明白主键和外键的定义以及区别:**定义**主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。外键:若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。 **区别**主键:表中记录的唯一标识外键:依赖于别的表的数据主键:你把唯一键的一个选做主键,一张表只能有一个主键外键:所定义的外键是另一张表的主键,主键:表中记录的唯一标识,外键:依赖于别的表的数据主键和唯一键的一个区别:主键是不允许为NULL的,唯一键则可以,当然你可以加上NOT NULL来限制它 **结论**做主键的可以另外一个表的外键,其不能是表自身的外键(如果是表自身,则表明是另外一个也有这样的一个主键,但根据主键的定义可知这个结论是不对的)。
第5个回答  2013-07-14
你看看这篇文章吧, http://www.diybl.com/course/3_program/java/javashl/2008121/96848.html介绍 在Hibernate中使用联合主键作为外键
相似回答