sql server的主键与外键问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server的主键与外键问题相关的知识,希望对你有一定的参考价值。
我今天刚学sql server的主键外键,觉得有点不懂的是:书上说他们是强制约束,不能乱改.可如果我要改主键的某列值应该怎么办呢?请大家给我讲讲他们之间的关系到底是怎么样的?主表和子表的关系我也搞不太懂,谢谢大家了~
参考技术A 可以改,只要不是重复值就行。主键是一个表实体完整性的保证,就是说用它来保证能够唯一的表示一个实体。所以主键值不能重复。
外键是相对于两个表的。在另一个表中也是主键。用于保证参照完整性——控制两个表中的同一项数据一致。 参考技术B 对于我这个sql高手(呵呵)来说主外健好麻烦,先要把外健表中的关于有主健信息一改,再去改主健列内容,就这样 参考技术C 这么和你说吧,主键具有唯一性,也就是不能重复
外键是和其他表联系的,也就是和其他表的主键相关联,通信.
都可以改
改主键时,要注意唯一,不能出现重复值
改外键值时,将会使这条修改了外键值的记录和其他表失去关联.本回答被提问者采纳 参考技术D 诲人不倦:
有表:学生(学号,系代码), 系(系代码,系名,……)
学生表中,学号是主键,系代码是一个属性,但不是主键,而是系表中的主键;那么系代码在学生表中就是外键;
在学生表中插入/修改数据时,系代码的值必须是系表中已存在的值。这就是约束。 第5个回答 2009-04-15 先删除子表数据,再修改主表数据
SQL怎么在有外键的主键表中插数据
参考技术A1、创建表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的主键与外键问题的主要内容,如果未能解决你的问题,请参考以下文章