创建主键
oracle主键添加语句通常紧跟在建表语句之后,也可以直接嵌在列声明里创建,oracle创建主键时会自动在该列上创建索引。常见方法大概有以下5种:
方法一、使用add constraint 方法添加主键约束
alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)
方法二、使用索引创建主键
(和方法一没有区别,可以将方法一理解为省略了using index)
alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)
using index [index_name];
当省略using index后面的index_name时,创建主键的同时创建同名索引;当使用已有索引index_name创建主键时,注意索引列和主键列应该相同才能创建成功。
方法三、直接添加主键
alter table 表名 add primary key (列名1,列名2,...) ;
同样,创建主键的同时创建同名索引。
方法四、参数列内添加主键
create table ALERT_RESULT_EVENT_C
(
data_date VARCHAR2(8) not null,
object_id VARCHAR2(600) not null,
event_id VARCHAR2(20) not null,
ratio NUMBER(22,4),
pairing_object_id VARCHAR2(128),
index_value_1 VARCHAR2(128),
index_value_2 VARCHAR2(128),
constraint PK_ALERT_RESULT_EVENT_C primary key (DATA_DATE, OBJECT_ID, EVENT_ID)
);
删除主键
alter table 表名 drop primary key ;
采用该语句删除主键时,同名索引也会被删掉。
alter table 表名 drop primary key keep index;
该语句只删除主键,保留索引。