Oracle之主键的创建、添加、删除操作
2013-12-12 13:18
453 查看
一、创建表的同时创建主键约束
1.1、无命名
1.2、有命名
二、向表中添加主键约束
----另外当索引创建好以后再添加主键的效果:
三、修改主键约束
3.1、禁用/启用主键
3.2、重命名主键
四、删除表中已有的主键约束
4.1、无命名
4.2、有命名
1.1、无命名
SQL> create table jack (id int primary key not null,name varchar2(20)); Table created SQL> select table_name,index_name from user_indexes where table_name='JACK'; TABLE_NAME INDEX_NAME ------------------------------ ------------------------------ JACK SYS_C0011100
1.2、有命名
SQL> create table jack (id int ,name varchar2(20),constraint ixd_id primary key(id)); Table created SQL> select table_name,index_name from user_indexes where table_name='JACK'; TABLE_NAME INDEX_NAME ------------------------------ ------------------------------ JACK IXD_ID
二、向表中添加主键约束
SQL> create table jack as select * from dba_objects; Table created SQL> desc jack; Name Type Nullable Default Comments -------------- ------------- -------- ------- -------- OWNER VARCHAR2(30) Y OBJECT_NAME VARCHAR2(128) Y SUBOBJECT_NAME VARCHAR2(30) Y OBJECT_ID NUMBER Y DATA_OBJECT_ID NUMBER Y OBJECT_TYPE VARCHAR2(19) Y CREATED DATE Y LAST_DDL_TIME DATE Y TIMESTAMP VARCHAR2(19) Y STATUS VARCHAR2(7) Y TEMPORARY VARCHAR2(1) Y GENERATED VARCHAR2(1) Y SECONDARY VARCHAR2(1) Y NAMESPACE NUMBER Y EDITION_NAME VARCHAR2(30) Y SQL> alter table jack add constraint pk_id primary key(object_id); Table altered SQL> select table_name,index_name from user_indexes where table_name='JACK'; TABLE_NAME INDEX_NAME ------------------------------ ------------------------------ JACK PK_ID
----另外当索引创建好以后再添加主键的效果:
SQL> create table jack as select * from dba_objects; Table created SQL> create index ind_object_id on jack(object_id); Index created SQL> select table_name,index_name from user_indexes where table_name='JACK'; TABLE_NAME INDEX_NAME ------------------------------ ------------------------------ JACK IND_OBJECT_ID SQL> desc jack; Name Type Nullable Default Comments -------------- ------------- -------- ------- -------- OWNER VARCHAR2(30) Y OBJECT_NAME VARCHAR2(128) Y SUBOBJECT_NAME VARCHAR2(30) Y OBJECT_ID NUMBER Y DATA_OBJECT_ID NUMBER Y OBJECT_TYPE VARCHAR2(19) Y CREATED DATE Y LAST_DDL_TIME DATE Y TIMESTAMP VARCHAR2(19) Y STATUS VARCHAR2(7) Y TEMPORARY VARCHAR2(1) Y GENERATED VARCHAR2(1) Y SECONDARY VARCHAR2(1) Y NAMESPACE NUMBER Y EDITION_NAME VARCHAR2(30) Y SQL> alter table jack add constraint pk_id primary key(object_id); Table altered SQL> desc jack; Name Type Nullable Default Comments -------------- ------------- -------- ------- -------- OWNER VARCHAR2(30) Y OBJECT_NAME VARCHAR2(128) Y SUBOBJECT_NAME VARCHAR2(30) Y OBJECT_ID NUMBER DATA_OBJECT_ID NUMBER Y OBJECT_TYPE VARCHAR2(19) Y CREATED DATE Y LAST_DDL_TIME DATE Y TIMESTAMP VARCHAR2(19) Y STATUS VARCHAR2(7) Y TEMPORARY VARCHAR2(1) Y GENERATED VARCHAR2(1) Y SECONDARY VARCHAR2(1) Y NAMESPACE NUMBER Y EDITION_NAME VARCHAR2(30) Y SQL> select table_name,index_name from user_indexes where table_name='JACK'; TABLE_NAME INDEX_NAME ------------------------------ ------------------------------ JACK IND_OBJECT_ID
三、修改主键约束
3.1、禁用/启用主键
SQL> select a.table_name,a.index_name,b.constraint_name,b.constraint_type,b.status from user_indexes a,user_constraints b where b.table_name='JACK'and a.table_name=b.table_name; TABLE_NAME INDEX_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS ------------------------------ ------------------------------ ------------------------------ --------------- -------- JACK PK_ID PK_ID P ENABLED SQL> alter table jack disable primary key; Table altered SQL> select a.table_name,a.index_name,b.constraint_name,b.constraint_type,b.status from user_indexes a,user_constraints b where b.table_name='JACK'and a.table_name=b.table_name; TABLE_NAME INDEX_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS ------------------------------ ------------------------------ ------------------------------ --------------- -------- SQL> alter table jack enable primary key; Table altered SQL> select a.table_name,a.index_name,b.constraint_name,b.constraint_type,b.status from user_indexes a,user_constraints b where b.table_name='JACK'and a.table_name=b.table_name; TABLE_NAME INDEX_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS ------------------------------ ------------------------------ ------------------------------ --------------- -------- JACK PK_ID PK_ID P ENABLED
3.2、重命名主键
SQL> select a.table_name,a.index_name,b.constraint_name,b.constraint_type,b.status from user_indexes a,user_constraints b where b.table_name='JACK'and a.table_name=b.table_name; TABLE_NAME INDEX_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS ------------------------------ ------------------------------ ------------------------------ --------------- -------- JACK PK_ID PK_ID P ENABLED SQL> alter table jack rename constraint pk_id to pk_jack_id; Table altered SQL> select a.table_name,a.index_name,b.constraint_name,b.constraint_type,b.status from user_indexes a,user_constraints b where b.table_name='JACK'and a.table_name=b.table_name; TABLE_NAME INDEX_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS ------------------------------ ------------------------------ ------------------------------ --------------- -------- JACK PK_ID PK_JACK_ID P ENABLED
四、删除表中已有的主键约束
4.1、无命名
----先利用user_cons_columns表查得主键名: SQL> select owner,constraint_name,table_name,column_name from user_cons_columns where table_name = 'JACK'; OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------------------------ ------------------------------ ------------------------------ ---------------- JACK SYS_C0011105 JACK ID SQL> select table_name,index_name from user_indexes where table_name='JACK'; TABLE_NAME INDEX_NAME ------------------------------ ------------------------------ JACK SYS_C0011105 SQL> alter table jack drop constraint SYS_C0011105; Table altered
4.2、有命名
SQL> select owner,constraint_name,table_name,column_name from user_cons_columns where table_name = 'JACK'; OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------------------------ ------------------------------ ------------------------------ ------------------------ JACK IXD_ID JACK ID SQL> alter table jack drop constraint IXD_ID; Table altered SQL> select owner,constraint_name,table_name,column_name from user_cons_columns where table_name = 'JACK'; OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------------------------ ------------------------------ ------------------------------ ------------------------
相关文章推荐
- Oracle之主键的创建、添加、删除操作
- Oracle之主键的创建、添加、删除操作
- mysql添加列、删除列,创建主键、备份等常用操作总结
- Oracle主键外键 约束的 创建,添加和删除
- Oracle主键外键 约束的 创建,添加和删除
- oracle(PL/SQL)表操作:创建表时检查数据库是否存在该表,若存在删除再创建
- Oracle下基础表(创建表/添加列/更改字段类型/删除字段/修改字段名/ 修改表名/删除表)
- oracle创建对象、删除对象操作
- ORACLE中添加删除主键
- oracle创建表,追加备注,添加主键,触发器,自动增长序列
- <<< Oracle表创建、修改、删除基础操作
- 表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询) 1.Oracle表的管理
- oracle 创建用户,密码 ,授权,表空间操作,删除等
- oracle创建删除用户命令和部分表空间操作
- SharePoint 服务器端对象模型操作用户组(创建/添加/删除
- c语言实现对传统单链表的创建、添加 遍历 删除 反转元素操作
- 4.oracle表的管理(数据类型,表创建删除,数据CRUD操作)
- oracle 创建用户全过程(创建/删除表空间、添加/删除用户、授权/撤销权限)
- 创建Hibernate简单的添加 删除操作
- Mysql创建表,删除表,添加列等基本操作