创建外键约束的步骤

2025-03-03 17:37:41
推荐回答(3个)
回答1:

-- 创建测试主表. ID 是主键.
CREATE TABLE test_main (
  id      INT   NOT NULL,
  value   VARCHAR(10),
  PRIMARY KEY(id)  
);

-- 创建测试子表. 
CREATE TABLE test_sub (
  id      INT  NOT NULL,
  main_id INT ,
  value   VARCHAR(10),
  PRIMARY KEY(id)  
);

-- 插入测试主表数据.
INSERT INTO test_main(id, value) VALUES (1, 'ONE');
INSERT INTO test_main(id, value) VALUES (2, 'TWO');
-- 插入测试子表数据.
INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');
INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');

-- 创建外键
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons  FOREIGN KEY (main_id)  REFERENCES  test_main;
go

--  验证外键是否生效
1> DELETE
2>   test_main
3> WHERE
4>   ID = 1;
5> go
消息 547,级别 16,状态 1,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
DELETE 语句与 REFERENCE 约束"main_id_cons"冲突。该冲突发生于数据库"Stock",表"db
o.test_sub", column 'main_id'。
语句已终止。

回答2:

添加外键 ,alter table B
语法:alter table 表名 add constraint 外键约束名 foreign key(列名) references 引用外键表(列名)
如:
alter table Stu_PkFk_Sc add constraint Fk_s foreign key (sno) references Stu_PkFk_S(sno)--cc是外键约束名,不能重复,也不能是int类型(如1,2,3)
add constraint cc
--B表里的需要约束的字段(id)
foreign key (id)
--A表后的(id)可省略
references A (id)

回答3:

可以用创建关系图的方式进行约束,步骤如下
企业管理器中打开数据库,新建关系图,选出自己所要的几张表,然后将对应的外键用鼠标连接到另一张表的主键上就行了

ps 环境 sql2000