sql server 定义主键

drop table father;
create table father(
 id int identity(1,1) primary key,
 name varchar(20) not null,
 age int not null
  
)

drop table mother;

create table mother(
 id int identity(1,1),
 name varchar(20) not null,
 age int not null,
 husband int not null
)

alter table mother
  add constraint FK_ID foreign key(husband) references father(id)

 

 

 

如果 在father中没能定义主键,

drop table father;
create table father(
 id int identity(1,1),   (未定义 primary key)
 name varchar(20) not null,
 age int not null
)

 则会报如下异常:

 

在被引用表 'father' 中没有与外键 'FK_ID' 的引用列的列表匹配的主键或候选键

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server 中,主键索引(Primary Key Index)是一个特殊的约束,用于唯一标识表中的每一行数据。它确保了数据库表中没有重复的值,并且对于每个记录,主键列的值都是唯一的。创建主键索引的步骤如下: 1. **选择列**:首先,你需要选择一列或一组列作为主键,这些列的值应该是唯一的,并且不应包含 NULL 值。 ```sql CREATE TABLE YourTable ( Column1 INT, Column2 VARCHAR(50), PRIMARY KEY (Column1) ); ``` 在这个例子中,`Column1` 将成为主键。 2. **使用 `PRIMARY KEY` 关键字**:当你创建表时,可以在列定义后面直接指定 `PRIMARY KEY`,或者在 `CREATE TABLE` 语句结束时单独指定。 3. **自动增长**:如果你没有明确指定某个列为主键,而该列有 `IDENTITY` 属性或设置了自动增长,SQL Server 会默认将这个列作为主键。 4. **唯一性**:如果表中已经有非空唯一约束的列,你可以选择使用这些列作为主键,无需额外设置。 创建主键索引的一些注意事项: - 主键列通常不包含 NULL 值,除非使用 `WITH NULL` 子句。 - 如果你选择的列是复合主键,即多个列组合,那么所有列都必须是唯一的且不可为空。 - 只能有一个列或一组列作为表的主键,但你可以添加外键引用其他表的主键。 相关问题: 1. 主键索引的作用是什么? 2. 如何在已有表中更改主键? 3. SQL Server 中如何删除已有的主键约束?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值