oracle数据库添加,查询,删除主键约束

    

主键约束在每个表中只有一个,但是一个主键约束可以由多个列组成

可以在创建表的时候就创建主键约束,也可以通过alter语句添加主键约束

1:添加主键约束

【1】

语法

CREATE TABLE 表名(   
    字段名  primary key,								     字段名.....,											);

示例:

CREATE TABLE student(
 id number primary key,
name varchar(20),
age number(3),
email varchar2(50),
);										

【2】

语法

CREATE TABLE 表名(   
            字段名 ,										    字段名.....,									   [CONSTRAINT 约束名] primary key(字段名,字段名)--一个列只需写一个,多个列同时指定主键,用‘,‘号隔开
												);

示例:

CREATE TABLE student(
     id number ,
    name varchar(20),
    age number(3),
    email varchar2(50),
    primary key(id,name)--一个列只需写一个,多个列同时指定主键,用‘,‘号隔开
												);												

【3】

语法

ALTER TABLE 表名 ADD CONSTRAINT 约束名   PRIMARY KEY(字段名);

示例:

ALTER TABLE STUDENT ADD CONSTRAINT PK_ID   PRIMARY KEY (ID);

2:查询主键约束

 语法:

	select cu.* from user_cons_columns cu, user_constraints au 
where  cu.constraint_name = au.constraint_name  
and au.constraint_type = ‘P‘ and au.table_name = ‘要查询的表‘;

示例:

	select cu.* from user_cons_columns cu, user_constraints au 
where cu.constraint_name = au.constraint_name 
and au.constraint_type = ‘P‘ and au.table_name = ‘STUDENT‘;

3:删除主键约束

语法:

	ALTER TABLE TABLE_NAME  DROP  CONSTRAINT  CONSTRAINT_NAME;

示例:

对于创建表的时候添加主键的,先查询出主键名称,再进行删除

	ALTER TABLE STUDENT  DROP  CONSTRAINT  PK_STU_ID;
时间: 2024-10-22 05:20:31

oracle数据库添加,查询,删除主键约束的相关文章

Oracle如何删除主键约束的同时也删除索引

一.现象 在oracle10g中删除主键约束后,在插入重复数据时候仍然报“ORA-00001”错误. 二.原因 Oracle在的10g版本中对内部函数"atbdui"进行了调整,导致在删除约束的时候无法删除用户创建的索引.这个现象被Oracle分类到了“PROBLEM”. 三.方法 在删除约束的时候需要显示的指定“drop index”选项来完成索引的级链删除. 例:alter table table_name drop constraint constraint_name casca

db2数据库创建删除主键约束和创建删除唯一键约束

创建.删除唯一约束: db2 "alter table tabname add unique(colname)" db2 "alter table tabname drop unique CONSTNAME " 创建主键约束: db2 "alter table staff add primary key (id)" db2 "alter table t_da_jkda_rkxzl drop primary key"

sql server删除主键约束所想到的

从网上找到了下面一段代码: declare @Pk varchar(100);select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('表名') and xtype='PK';if @Pk is not nullbegin exec('Alter table 表名 Drop '+ @Pk) --删除原主键end 这里的重点是表sysobjects,sysobjects表是系统表,在数据库内创建的每个对象(约束.默认值.日志.规则.存储

spring jdbcTemplate insert插入Oracle数据库后返回当前主键id

最近做一个spring版本3.0.4的老项目功能,应用场景要用到jdbctemplate插入oracle表后返回主键ID拿来和其他表关联. 用oralce的可以一直用这种处理方式,高兼容低. public long insertOraGetId(final QuetInvtHeadVO headVO) { KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedStatementCreator

oracle数据库创建表且主键自增

Oracle数据库中,设置ID自增并不像MySQL中那么简单,Oracle中需要设置一个序列. 现在给出方式,具体如下: 第一步:建立一个表 create table ContestDB ( TID NUMBER(10) PRIMARY KEY, TEAMNUM varchar(50) not null, MARKNUM varchar(50) ); 第二步:设置ID自增 第一种方式:不使用触发器 1 CREATE SEQUENCE SEQ_TID; 2 INSERT INTO ContestD

tk Mapper Oracle数据库插入时返回主键

主键生成策略 @Id @GeneratedValue(strategy = GenerationType.IDENTITY, generator="SELECT F_DEMO_SEQ.NEXTVAL FROM DUAL") private Long id; MapperScannerConfigurer <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"> <property

oracle查看禁用/启用/删除外键约束sql

1.查看禁用外键sql select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'; 2.查看启用外键sql select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constrai

主键约束 primary key

主键的作用: 可以唯一标识 一条数据,每张表里面只能有一个主键,.主键特性: 非空且唯一.当表里没有主键的时,第一个出现的非空且为唯一的列,被当成主键. 例子:create table tb3(     id int primary key,    name varchar(20) not null); 唯一标识 一条数据 #删除主键约束mysql -> alter table tb3           -> drop primary key #添加主键约束mysql> alter t

19、约束之间的比较:主键约束、联合约束、唯一约束、外键约束

约束之间的比较:主键约束.联合约束.唯一约束.外键约束 1.主键约束,primary_key 能唯一确定一张表中的记录,也就是我们通过给某个字段添加约束,就可以使得改字段不重复且不为空. create table test1( id int primary key, name varchar(20) not null ); 1.2.联合约束,只要联合的主键值加起来不重复就可以了,且不为空 create table test2( id int, name varchar(20), password