sql – Oracle合并对选择然后插入或更新
发布时间:2020-12-12 08:33:59 所属栏目:MsSql教程 来源:网络整理
导读:什么是更快? 合并声明 MERGE INTO table_name USING dual ON (row_id = 'some_id') WHEN MATCHED THEN UPDATE SET col_name = 'some_val' WHEN NOT MATCHED THEN INSERT (row_id,col_name) VALUES ('some_id','some_val') 要么 查询select语句,然后使用updat
什么是更快?
合并声明 MERGE INTO table_name USING dual ON (row_id = 'some_id') WHEN MATCHED THEN UPDATE SET col_name = 'some_val' WHEN NOT MATCHED THEN INSERT (row_id,col_name) VALUES ('some_id','some_val') 要么 查询select语句,然后使用update或insert语句. SELECT * FROM table_name where row_id = 'some_id' 如果rowCount == 0 INSERT INTO table_name (row_id,col_name) VALUES ('some_id','some_val') 其他 UPDATE table_name SET col_name='some_val' WHERE row_id='some_id' 解决方法经验法则是,如果您可以在一个SQL中执行此操作,则通常会在多个SQL语句中执行更好.如果这样做,我会和MERGE一起去. 另外 – 另一个建议:你可以避免在你的声明中重复数据,例如: MERGE INTO table USING (SELECT 'some_id' AS newid,'some_val' AS newval FROM dual) ON (rowid = newid) WHEN MATCHED THEN UPDATE SET colname = newval WHEN NOT MATCHED THEN INSERT (rowid,colname) VALUES (newid,newval) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SqlServer 循环插入 大量 测试数据
- 如何获取本机上sqlserver所有开启的服务器名
- SQL中的CHAR数据类型是否已过时?你什么时候用的?
- tsql – SQL – CASE STATEMENT – WHEN语句AND语句
- sql – Inner Join是否有任何性能问题?
- sqlserver 将表内容导出insert语句 转载
- sql-server – 集群索引和唯一索引有什么区别?
- SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所
- sqlserver2008错误sqlstate:42000 NativeError:1802解决办
- oop – 如何在对象数据库中设计多对多关系?