1:首先判断主键是否作为其他表的外键,若有,执行语句
alter table 表名 drop constraint 约束名
drop完所有外键约束后就可以对主键进行修改了
2:删除主键约束
alter table 表名 drop constraint 主键约束名
3:新增字段,并将该字段修改为主键
alter table 表名 add constraint 约束名 primary key (字段名) using index tablespace 表空间名 pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited );
如果被修改表有数据,则会报
ORA-01758: 要添加法定 (NOT NULL) 列,则表必须为空 异常
为了解决改异常,保证数据的完整性,就需要创建临时表,将元数据复制到临时表里面
1:创建序列 create sequence S_C_ZONE_MANAGE minvalue 1 maxvalue 9999999999999999999999999999 start with 1 increment by 2:创建临时表 create table 临时表 AS SELECT 序列.NEXTVAL,别名.列,别名.列
FROM 原表 别名
复制完数据后删除原表数据,此时主表就会创建完成,
5:向原表插入数据
insert into 原表 select 别名.* from 临时表 别名
6:删除临时表
drop table 表名
相关推荐
Oracle使用 alter 增加 修改 删除 字段, 可以同时添加多个字段 创建 修改 添加表的约束
一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...
ORACLE自增主键设置方法ORACLE自增主键设置方法
oracle序列主键自增长实现主键自动增长
Oracle数据库中,表中已存在数据字段修改该字段的长度,如有疑问可沟通联系,当积分自动提升到很高的时候欢迎联系,会把积分调低。
oracle中对blob字段的处理方法,包括增加,删除,修改,更新等操作。
获取oracle 表字段,表名,以及主键之类等等的信息,获取oracle 表字段,表名,以及主键之类等等的信息获取oracle 表字段,表名,以及主键之类等等的信息获取oracle
oracle 创建id主键序列的 脚本 及 使用方式 oracle 创建id主键序列的 脚本 及 使用方式
查询ORACLE的主键的执行脚本,能够查询到ORACLE中表的主键。
oracle数据库主键自动生成
Oracle数据库中,对已存在数据的表中插入单个字段信息。
oracle数据库中主键属性没有自增长,所以只能自己写程序来实现,用序列与触发器,可以解决这个 问题
如何在oracle中查询所有用户表的表名、主键名称、索引、外键等
Oracle中主键自增实例
想要调整字段顺序非常不容易,网上的方法竟然都是备份表之后删除再重建,这样整的话不是麻烦而是忒麻烦。查找了一些资料,发现有办法可以解决,而不用那么大费周章,如果更改的话需要SYS的权限,废话少说了
oracle表字段或是视图字段添加备注方法
oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence 以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle...
ORACLE中CLOB字段转String类型
把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
JDBC读写Oracle的CLOB字段