Oracle中主键、外键、索引、序列、唯一性约束的创建

时间:2022-04-23 11:10:46

1、主键的创建

方法一:直接在sql语句中声明字段主键约束

create table table_name (id type[length] constraint pk_name primary key,name tyoe[length],age type[length],class_id);

方法二:alter更改表添加约束

alter table table_name add constraint pk_name primary key (字段);

删除:

alter table table_name drop constraint contraint_name;

重命名:

alter table table_name rename constraint old_name to new_name;

失效:

alter table table_name modify constraint constraint_name disable;

生效:

alter table table_name modify constraint constraint_name enable;

2、外键的创建

方法一:直接在sql语句中声明

create table table_name (id type[length] primary key table_name_pk,name tyoe[length],age type[length],

class_id,foreign key (class_id) references table2_name(class_id));//字段类型要一致

方法二:alter更改表添加约束

alter table table_name add constraint fk_name foreign key(class_id) references  table2_name(class_id);

删除:

alter table table_name drop constraint constraint_name;

重命名:

alter table table_name rename constraint old_name to new_name;

失效:

alter table table_name modify constraint constraint_name disable;

生效:

alter table table_name modify constraint constraint_name enable;

3、索引的创建

create index index_name on table_name(字段);

删除:drop index index_name;

重命名:alter index index_name rename to new_name;

生效:

失效:

4、序列的创建

create sequence sequence_name

start with 1

increment by 1

nomaxvalue

nocycle;

删除:drop sequence sequence_name;

5、唯一性约束的创建

create table table_name(id type[length],name type[length],

num type[length] constraint constraint_name unique,class_id type[length]);

alter table add constraint constraint_name unique(一个或多个字段);