sql server的主键与外键问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server的主键与外键问题相关的知识,希望对你有一定的参考价值。

我今天刚学sql server的主键外键,觉得有点不懂的是:书上说他们是强制约束,不能乱改.可如果我要改主键的某列值应该怎么办呢?请大家给我讲讲他们之间的关系到底是怎么样的?主表和子表的关系我也搞不太懂,谢谢大家了~

参考技术A 可以改,只要不是重复值就行。
主键是一个表实体完整性的保证,就是说用它来保证能够唯一的表示一个实体。所以主键值不能重复。
外键是相对于两个表的。在另一个表中也是主键。用于保证参照完整性——控制两个表中的同一项数据一致。
参考技术B 对于我这个sql高手(呵呵)来说主外健好麻烦,先要把外健表中的关于有主健信息一改,再去改主健列内容,就这样 参考技术C 这么和你说吧,主键具有唯一性,也就是不能重复
外键是和其他表联系的,也就是和其他表的主键相关联,通信.
都可以改
改主键时,要注意唯一,不能出现重复值
改外键值时,将会使这条修改了外键值的记录和其他表失去关联.本回答被提问者采纳
参考技术D 诲人不倦:
有表:学生(学号,系代码), 系(系代码,系名,……)
学生表中,学号是主键,系代码是一个属性,但不是主键,而是系表中的主键;那么系代码在学生表中就是外键;
在学生表中插入/修改数据时,系代码的值必须是系表中已存在的值。这就是约束。
第5个回答  2009-04-15 先删除子表数据,再修改主表数据

SQL怎么在有外键的主键表中插数据

参考技术A

1、创建表TEST_KEY_F,并添加主键。

-- Create table

create table TEST_KEY_F(class_id   NUMBER , class_name VARCHAR2(20));

alter table TEST_KEY_F add constraint P_KEY_2 primary key (CLASS_ID);

2、创建TEST_KEY_P表,并引用TEST_KEY_F表的class_id键为外键,

create table TEST_KEY_P( id       NUMBER,class_id NUMBER);

alter table TEST_KEY_P add constraint F_KEY2 foreign key (CLASS_ID)

  references TEST_KEY_F (CLASS_ID);

3、先在被关联的外键表中插入数据;

insert into TEST_KEY_F values(1001, '班1');

insert into TEST_KEY_F values(1002, '班2');

insert into TEST_KEY_F values(1003, '班3');


4、再往有外键的主键表TEST_KEY_P中插入记录;可以发现数据已插入成功。

insert into TEST_KEY_P values(1,1001);

insert into TEST_KEY_P values(2,1001);

insert into TEST_KEY_P values(3,1002);

insert into TEST_KEY_P values(4,1002);

commit;

以上是关于sql server的主键与外键问题的主要内容,如果未能解决你的问题,请参考以下文章

sql server 主键与外键约束无法创建

如何分清SQL数据库中的主键与外键

sql用命令创建主键与外键。

数据库中的主键与外键的关系

数据库的主键与外键

数据库中 主键与外键的区别?