Oracle查询--增加--删除--修改主键

对Oracle表主键的操作,有四类:查询,增加,修改,删除

1、查询主键

/*查询某个表中存在的约束*/
select * from user_constraints where table_name=‘表名大写‘;
查询结果显示约束类型,约束名称,不显示约束在哪个字段上
/*查询某个表各字段约束*/
select * from user_cons_columns where table_name=‘表名大写‘;
查询结果显示约束名称,字段名称,不显示约束类型
/*查询某个表的主键约束*/
select  A.column_name,A.constraint_name from user_cons_columns A,user_constraints B
where A.constraint_name=B.constraint_name and A.table_name=‘表名大写‘ and B.constraint_type=‘P‘;
查询结果显示列名,约束名。‘P‘表示primary Key,‘C‘表示check,此处constraint_type=‘P‘

2、增加主键

alter table 表名 add constraint 主键名 primary key(列名);

3、删除主键

/*主键,在查询处可以获得*/
alter table 表名 drop constraint 主键

4、修改主键

oracle不能直接修改主键,通过删除已有主键再增加,达到修改的目的

原文地址:https://www.cnblogs.com/handhead/p/11617934.html

时间: 2024-10-18 04:08:49

Oracle查询--增加--删除--修改主键的相关文章

ORACLE: 查询(看)表的主键、外键、唯一性约束和索引

ORACLE: 查询(看)表的主键.外键.唯一性约束和索引 1.查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 表名 2.查找表的主键(包括名称,构成列): select cu.* from user_co

用SQL语句给一个表的增加自增主键或删除主键

刚开始时碰到这个需求时,在网上搜索了一下,发现都说不行,得先删除那主键列再重新增加或者先创建一个临时表再把数据导过来,其实在MYSQL中是可以直接修改的. 修改ID字段为自增主键: alter table `test` change `id` `id` int (11) UNSIGNED NOT NULL AUTO_INCREMENT , add primary key (`id` ); 修改ID字段为自增非主键: alter table `test` change `id` `id` int

Oracle删除表主键语句

删除无名主键语句: SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME = '表名'; ALTER TABLE 表名 DROP CONSTRAINT 主键名称; 上面语句需要手动,如何自动执行?看下面: CREATE OR REPLACE FUNCTION DEL_TABLE_CONSTRAINT (tb_name VARCHAR2, field_name VARCHAR2) RETURN NUMBER IS con_count NUMBER; co

ORACLE查询并删除重复记录

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where

veridata实验举例(5)修改主键上的列值,update操作会被拆分成两条语句

veridata实验举例(5)修改主键上的列值,update操作会被拆分成两条语句 续接"veridata实验举例(4)验证veridata查找出updata.delete操作导致的不同步现象",地址:点击打开链接 环境: Item Source System Target System Platform Red Hat Enterprise Linux Server release 5.4 Red Hat Enterprise Linux Server release 5.4 Hos

[JavaWeb基础] 004.用JSP + SERVLET 进行简单的增加删除修改

上一次的文章,我们讲解了如何用JAVA访问MySql数据库,对数据进行增加删除修改查询.那么这次我们把具体的页面的数据库操作结合在一起,进行一次简单的学生信息操作案例. 首先我们创建一个专门用于学生管理的ManageServlet. 接着我们需要一个展现数据的页面,也就是 UserList.jsp <%@page import="com.babybus.sdteam.vo.Student"%> <%@ page language="java" im

创建和修改主键 (SQL)

添加主键, ALTER TABLE [表名:OrderInfo] Add PRIMARY KEY ([列名:ProductID, UserID...])  多个列则是组合主键 删除主键, ALTER TABLE [表名:OrderInfo] DROP PRIMARY KEY 修改主键,先执行删除 ALTER TABLE [表名:OrderInfo] DROP PRIMARY KEY 语句删除现有主键, 然后执行 ALTER TABLE [表名:OrderInfo] Add PRIMARY KEY

ODI修改主键后刷新失败解决方案

ODI增量刷新,修改主键值后,会导致刷新失败.解决办法:使用表中值固定不定的列作为增量刷新的依据列. 演示如下: 如上,源表和目标表有相同的记录.现修改源表主键信息 执行数据同步刷新后,目标表数据如下 发现,源表在update主键时,执行同步后,会向目标表新插入一条记录,原主键值记录仍保留在库中. 解决方案:从源表中找出一列(一组)固定不定的字段,目标表中以源表固定不变的字段建立主键,作为更新的依据. 如下: 源表ORDTASK2,主键为ORDNO,METHODCODE:在做数据集成时,我们认为

Mysql复制表结构、表数据以及修改主键

mysql查看表结构命令 show columns from 表名; 1.复制表结构及数据到新表 CREATE TABLE 新表SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除. 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错.     2.只复制表结构到新表 CRE