主键重建

mysql:

ALTER TABLE table_name ADD PRIMARY KEY(column_name);

ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(column_name);  -- 指定主键名称

ALTER TABLE table_name DROP PRIMARY KEY;

ALTER TABLE table_name DROP CONSTRAINT pk_name;  -- 指定主键名称,不光可以删除主键,一切约束均可

informix:

1) 查询主键名称

SELECT constrname FROM sysconstraints 

WHERE tabid = (SELECT tabid FROM systables WHERE tabname = 'table_name') and constrtype ='P' ; 

2) 删除主键, u108_67

alter table table_name drop constraint u108_67; 

3) 新建主键: 

ALTER TABLE table_name 

ADD CONSTRAINT PRIMARY KEY (column_name)  [CONSTRAINT u108_67];   -- 约束名可以指定,但不建议指定,唯一性限制,让系统自行分配的好

oracle:

1) 查询主键名称(已指定的名称的,不需要。即主键与CONSTRAINT关联了,CONSTRAINT pk_name PRIMARY KEY(column_name))

select a.constraint_name   

from user_constraints a, user_cons_columns b   

where a.constraint_name=b.constraint_name and a.constraint_type='P' and a.table_name='table_name';

2) 删除主键,SYS_C012311

alter table student drop constraint SYS_C012311;

3) 新增主键

ALTER TABLE table_name  

ADD CONSTRAINT pk_name PRIMARY KEY(column_name);


猜你喜欢

转载自elihe2011.iteye.com/blog/1672344