Oracle之主键(Primary Key)用法详解

什么是主键

主键(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
所谓的复合主键 就是指你表的主键含有一个以上的字段组成。
如果表里没有可以当唯一主键,可以使用复合主键,确定一条记录的唯一性。

创建主键两种方式

第一种, 在创建表时定义主键
单列主键示例:

----创建TF_B_AIR_CONFIG表
create table ECS_STORE.TF_B_AIR_CONFIG(
  TYPE_ID            VARCHAR2(20) not null,
  PROVINCE_CODE      VARCHAR2(4) not null,
  PARAMETER_TYPE     VARCHAR2(2) not null,
  LIMIT_NUM          VARCHAR2(4) not null,
  EFFECTIVE_FALG     VARCHAR2(2) default '1',
  UPDATE_TIME        DATE default sysdate,
  constraint TF_B_AIR_CONFIG_PK primary key(TYPE_ID)--单列主键  
)

复合主键示例:

----创建TF_B_AIR_CONFIG表
create table ECS_STORE.TF_B_AIR_CONFIG(
  TYPE_ID            VARCHAR2(20) not null,
  PROVINCE_CODE      VARCHAR2(4) not null,
  PARAMETER_TYPE     VARCHAR2(2) not null,
  LIMIT_NUM          VARCHAR2(4) not null,
  EFFECTIVE_FALG     VARCHAR2(2) default '1',
  UPDATE_TIME        DATE default sysdate,
  constraint TF_B_AIR_CONFIG_PK primary key(TYPE_ID , PROVINCE_CODE)--复合主键  
)

第二种, 在创建表后,使用alter table语法
语法

ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (col1, col2,...coln);  

示例

----创建TF_B_AIR_CONFIG表
create table ECS_STORE.TF_B_AIR_CONFIG(
  TYPE_ID            VARCHAR2(20) not null,
  PROVINCE_CODE      VARCHAR2(4) not null,
  PARAMETER_TYPE     VARCHAR2(2) not null,
  LIMIT_NUM          VARCHAR2(4) not null,
  EFFECTIVE_FALG     VARCHAR2(2) default '1',
  UPDATE_TIME        DATE default sysdate
)
--单列主键  
alter table ECS_STORE.TF_B_AIR_CONFIG add constraint TF_B_AIR_CONFIG_PK primary key (TYPE_ID);  
--联合主键  
alter table ECS_STORE.TF_B_AIR_CONFIG add constraint TF_B_AIR_CONFIG_PK primary key (TYPE_ID , PROVINCE_CODE);  

其他操作

  • 禁用主键

语法:

ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;  

示例:

alter table ECS_STORE.TF_B_AIR_CONFIG disable constraint TF_B_AIR_CONFIG_PK ;  
  • 启用主键

语法:

ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;  

示例:

alter table ECS_STORE.TF_B_AIR_CONFIG enable constraint TF_B_AIR_CONFIG_PK ;  
  • 删除主键

语法:

ALTER TABLE table_name DROP CONSTRAINT constraint_name;

示例:

alter table ECS_STORE.TF_B_AIR_CONFIG drop constraint TF_B_AIR_CONFIG_PK ;  
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值