- 浏览: 770929 次
- 性别:
- 来自: 广州
文章分类
最新评论
insert提示IGNORE_ROW_ON_DUPKEY_INDEX
转自:http://space.itpub.net/18922393/viewspace-752123
在 insert into tablea ...select * from tableb中,如果存在唯一约束,会导致整个insert操作失败。使用IGNORE_ROW_ON_DUPKEY_INDEX提示,会忽略唯一约束冲突,回滚当前行,继续完成其他行的插入。
1,注意:
(1)如下三个提示CHANGE_DUPKEY_ERROR_INDEX, IGNORE_ROW_ON_DUPKEY_INDEX, RETRY_ON_ROW_CHANGE与其他提示不同,特别之处在于存在“语义效果(semantic effect)”。
“semantic effect”指在违反以下规则时该提示会导致错误信息:
*如果指定了索引名称,该索引必须存在且唯一;否则会导致ORA-38913错误;
*如果指定索引,必须指定一个索引。如果未指定索引,会导致ORA-38912错误;如果指定了多个索引,会导致ORA-38915错误。
*不能同时指定CHANGE_DUPKEY_ERROR_INDEX和IGNORE_ROW_ON_DUPKEY_INDEX提示;否则会导致ORA-38915错误。
提示CHANGE_DUPKEY_ERROR_INDEX有两种用法,一种是指定索引的名称,另一种是指明所有构成索引的列。
需要注意的是,这个HINT只对唯一索引生效,而对唯一约束无效:
(2)与其他提示相同,存在语法错误的提示将被忽略.
(3)该提示仅适用于单个表的insert操作。
2,测试:
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected asmh@boclink
SQL>
SQL> drop table test;
Table dropped
SQL> create table test(x int,y int);
Table created
SQL> insert into test values(1,1);
1 row inserted
SQL> insert into test values(2,2);
1 row inserted
SQL> insert into test values(3,3);
1 row inserted
SQL> commit;
Commit complete
SQL> create unique index uidx_test_x on test(x);
Index created
SQL> drop table test2;
Table dropped
SQL> create table test2
2 as
3 select * from test;
Table created
SQL> insert into test2 values(4,4);
1 row inserted
SQL> insert into test2 values(5,5);
1 row inserted
SQL> commit;
Commit complete
SQL> insert into test
2 select * from test2;
insert into test
select * from test2
ORA-00001: 违反唯一约束条件 (MH.UIDX_TEST_X)
SQL> rollback;
Rollback complete
SQL> insert into test
2 select * from test2;
insert into test
select * from test2
ORA-00001: 违反唯一约束条件 (MH.UIDX_TEST_X)
SQL> commit;
Commit complete
SQL> insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(test(x)) */into test
2 select * from test2;
2 rows inserted
SQL> commit;
Commit complete
SQL> select * from test;
X Y
--------------------------------------- ---------------------------------------
1 1
2 2
3 3
4 4
5 5
SQL>
SQL>
SQL> insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(test,uidx_test_x) */into test
2 select * from test2;
0 rows inserted
SQL> commit;
Commit complete
转自:http://space.itpub.net/18922393/viewspace-752123
在 insert into tablea ...select * from tableb中,如果存在唯一约束,会导致整个insert操作失败。使用IGNORE_ROW_ON_DUPKEY_INDEX提示,会忽略唯一约束冲突,回滚当前行,继续完成其他行的插入。
1,注意:
(1)如下三个提示CHANGE_DUPKEY_ERROR_INDEX, IGNORE_ROW_ON_DUPKEY_INDEX, RETRY_ON_ROW_CHANGE与其他提示不同,特别之处在于存在“语义效果(semantic effect)”。
“semantic effect”指在违反以下规则时该提示会导致错误信息:
*如果指定了索引名称,该索引必须存在且唯一;否则会导致ORA-38913错误;
*如果指定索引,必须指定一个索引。如果未指定索引,会导致ORA-38912错误;如果指定了多个索引,会导致ORA-38915错误。
*不能同时指定CHANGE_DUPKEY_ERROR_INDEX和IGNORE_ROW_ON_DUPKEY_INDEX提示;否则会导致ORA-38915错误。
提示CHANGE_DUPKEY_ERROR_INDEX有两种用法,一种是指定索引的名称,另一种是指明所有构成索引的列。
需要注意的是,这个HINT只对唯一索引生效,而对唯一约束无效:
(2)与其他提示相同,存在语法错误的提示将被忽略.
(3)该提示仅适用于单个表的insert操作。
2,测试:
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected asmh@boclink
SQL>
SQL> drop table test;
Table dropped
SQL> create table test(x int,y int);
Table created
SQL> insert into test values(1,1);
1 row inserted
SQL> insert into test values(2,2);
1 row inserted
SQL> insert into test values(3,3);
1 row inserted
SQL> commit;
Commit complete
SQL> create unique index uidx_test_x on test(x);
Index created
SQL> drop table test2;
Table dropped
SQL> create table test2
2 as
3 select * from test;
Table created
SQL> insert into test2 values(4,4);
1 row inserted
SQL> insert into test2 values(5,5);
1 row inserted
SQL> commit;
Commit complete
SQL> insert into test
2 select * from test2;
insert into test
select * from test2
ORA-00001: 违反唯一约束条件 (MH.UIDX_TEST_X)
SQL> rollback;
Rollback complete
SQL> insert into test
2 select * from test2;
insert into test
select * from test2
ORA-00001: 违反唯一约束条件 (MH.UIDX_TEST_X)
SQL> commit;
Commit complete
SQL> insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(test(x)) */into test
2 select * from test2;
2 rows inserted
SQL> commit;
Commit complete
SQL> select * from test;
X Y
--------------------------------------- ---------------------------------------
1 1
2 2
3 3
4 4
5 5
SQL>
SQL>
SQL> insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(test,uidx_test_x) */into test
2 select * from test2;
0 rows inserted
SQL> commit;
Commit complete
发表评论
-
Oracle 10g 的clusterware 32位 下载地址
2013-04-19 23:03 1159Oracle 10g 的clusterware 32位 下载地 ... -
oracle 分析函数 RANK()
2013-04-11 00:05 1065RANK()既是一个聚合函数,也是一个分析函数 其具体的语法 ... -
oracle 分析函数
2013-04-09 23:25 1135分析函数是用于计算一组中多行的聚合值,与聚合函数的区别在于聚合 ... -
批量执行 bulk collect与forall用法
2013-04-08 23:49 1336BULK COLLECT 子句会批量检 ... -
pl/sql集合类型
2013-03-26 10:12 1537--集合类型 /* 单行单列的数据,使用标量变量 单行 ... -
oracle 行链接与行迁移
2013-03-16 01:06 1064表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放 ... -
oracle Health Monitor
2013-01-20 00:02 1573About Health Monitor Beginning ... -
oracle moving window size与 AWR retention period关系
2013-01-19 15:58 8454转自: http://tomszrp.itpub.net/po ... -
oracle 11g新特性Flashback data archive
2013-01-09 22:52 30391. 什么是flashback data archive F ... -
RMAN List和report 命令
2012-12-25 00:07 2826LIST 命令 使用RMAN LIST 命令显示有关资料档案库 ... -
oracle ASM中ASM_POWER_LIMIT参数
2012-12-24 23:46 6364ASM_POWER_LIMIT 该初始化参数用于指定ASM例程 ... -
oracle I/O 从属进程
2012-12-24 23:24 1370I/O 从属进程 I/O从 ... -
easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
2012-12-19 23:43 5590用easy connect连接出现“tns无法解析指定的连接标 ... -
Flashback Database --闪回数据库
2012-12-19 23:38 1333Flashback 技术是以Undo segment中的内容为 ... -
Oracle 11g新特性:Automatic Diagnostic Repository
2012-12-19 22:35 1345Oracle Database 11g的FDI(Fault D ... -
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
2012-12-19 22:09 2593RMAN配置中通道(CHANNEL)相 ... -
oracle 空间RESUMABLE
2012-12-14 22:05 3005空间RESUMABLE操作 转 Oracle从9i开始 ... -
oracle 创建视图 with check option
2012-12-13 23:14 1463我们来看下面的例子: create or replace vi ... -
flashback transaction闪回事务查询
2012-11-26 22:00 1458闪回事务查询有别于闪回查询的特点有以下3个: (1) ... -
pl/sql连不上oracle数据库
2012-11-21 22:56 3705pl/sql 9.2版本连不上oracle数据库 当系统安装 ...
相关推荐
本文实例讲述了php计划任务之ignore_user_abort函数实现方法。分享给大家供大家参考。具体分析如下: PHP 不会检测到用户是否已断开连接,直到尝试向客户机发送信息为止,简单地使用 echo 语句无法确保信息发送,参阅 ...
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) GO 确认3.执行计划如下: ...
ignore_user_abort 设置与客户机断开是否会终止脚本的执行。 本函数返回 user-abort 设置的之前的值(一个布尔值)。 int ignore_user_abort ([ string $value ] ) 参数setting描述:可选。如果设置为 true,则...
语法: int ignore_user_abort(int [setting]); 返回值: 整数 函数种类: PHP 系统功能 内容说明 0 – NORMAL(正常)1 – ABORTED(异常退出)2 – TIMEOUT(超时) 本函数配置或取得使用端连接中断后,PHP 程序是否...
希望关闭浏览器后,程序能继续在后台跑,这种情况下需要用到ignore_user_abort()函数
前言: 经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL...当数据库实例开启 binlog 时,我们执行 show master status 命令,会看到有 Binlog_Do_DB 与 Binlog_Ignore_DB 选项。 mysql> show maste
hibernate3.0连接SQLServer代码简单例子,单表t_user...)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
校友录系统(ASP.NET 3.5实现)USE [friends] ...)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
2018最全的开户行行号,支行,网点号。...)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
留言本系统(ASP.NET 3.5实现)USE [guestbook] ...)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Bootstrap_FileUpload4.3.9+Drapper+IOC+MVC ,包含...)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
USE ...)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO
FIT_IGNORE_TIMING = ON; DEMOTE_SPECIFIC_LCELL_ASSIGNMENTS_TO_LAB_ASSIGNMENTS = OFF; IGNORE_LOCAL_ROUTING_ASSIGNMENTS = OFF; IGNORE_DEVICE_ASSIGNMENTS = OFF; IGNORE_LC_ASSIGNMENTS = OFF; IGNORE_...
欢迎使用您的新宝石! 在此目录中,您将找到能够将Ruby库打包为gem所需的文件。 将您的Ruby代码放在文件lib/bundler_ignore_universal 。 要试验该代码,请运行bin/console进行交互式提示。 待办事项:删除此内容...
android的某个activity中屏蔽掉home键的功能
表结构: 代码如下: CREATE TABLE [dbo].[Xtest]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [XName] [nvarchar]...INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE
Description: Return a value that causes the object to be ignored.