oracle如何更新主键 oracle修改表的主键的sql

oracle解决主键冲突

参考:

创新互联建站始终坚持【策划先行,效果至上】的经营理念,通过多达十载累计超上千家客户的网站建设总结了一套系统有效的全网营销解决方案,现已广泛运用于各行各业的客户,其中包括:成都高空作业车租赁等企业,备受客户表扬。

一、

1.insert  into table as select from......

insert into table(field) values();

   主键冲突:在数据插入的时候,如果主键对应的值已经存在,则插入失败,此为主键冲突。此刻可以进行选择性处理,忽略、更新或替换。

----------------------------------------------------------------------------------

    insert ignore into ......     此方法遇到主键冲突时,不更改原记录,也不报错。

2. replace into table values();  

replace into table as select  from ......

数据不存在则insert,若存在则replace掉,而且在列不全的情况下,未指定value的列会被设为默认值。

3. insert into table values()  on duplicate  key  update table set ..........

注意values括号里只简写一个id即可,最终生效的是update的内容。

二、关键时刻,如何使主键失效

  alter table tablename disable primary key;

  alter table tablename enable primary key;

  alter  table tablename drop  primary key;

  使外键失效或生效:

   alter table tablenamee disable constraint  foreign_key_name;

oracle 如果存在主键则更新(update),否则添加新纪录(insert)怎么写。

Create Or Replace Procedure p_Update_Add(Pn_Id     In Number, --传入的id

                                   Ln_Code   Number, --返回码

                                   Lr_Reinfo Number) Is

Ln_Flags Number;

Begin

Select Count(1) Into Ln_Flags From t_Test Where Id = Pn_Id; --t_test为测试表

If Ln_Flags 0 Then

--有一条或多条记录存在,表示主键已经存在,进行更新操作

Update t_Test Set Xxx = Xxx;

Lr_Code   := 1;

Lr_Reinfo := '进行更新';

Elsif Ln_Flags = 0 Then

--没有记录,进行添加操作

Insert Into t_Test Values (Xx, Xxx, Xxx, Xxx);

Lr_Code   := 2;

Lr_Reinfo := '进行新增';

Else

Lr_Code   := -1;

Lr_Reinfo := '操作失败';

End If;

Exception

When Others Then

Dbms_Output.Put_Line('出现异常');

Rollback;

End;

ORACLE 更改主键怎么改?

1、首先应该删除已有的主键约束\x0d\x0a ①若已知道该主键命名\x0d\x0a\x0d\x0a alter table 表名 drop constraint 主键名;\x0d\x0a\x0d\x0a ②若不知道朱建命名\x0d\x0a\x0d\x0a SELECT * from user_cons_columns c where c.table_name = '表名';\x0d\x0a\x0d\x0a 找到主键字段column对应的主键名,再执行①\x0d\x0a\x0d\x0a2、增加新的主键约束\x0d\x0a alter table 表名 add constraint 主键名 primary key(字段名);


分享名称:oracle如何更新主键 oracle修改表的主键的sql
文章出自:http://scyanting.com/article/hejejd.html