Oacle 插入多条记录的语法理解;INSERT ALL INTO ....... SELECT 1 FROM dual;
单表Insert into的语句就不说了,这里主要说插入多条语句的说明
For a multitable insert operation, each expression in the values_clause must refer to columns returned by the select list of the subquery. If you omit the values_clause, then the select list of the subquery determines the values to be inserted, so it must have the same number of columns as the column list of the corresponding insert_into_clause. If you do not specify a column list in the insert_into_clause, then the computed row must provide values for all columns in the target table.
对于多表插入操作,values_clause 中的每个表达式都必须引用子查询的选择列表返回的列。如果省略values_clause,则子查询的select 列表决定了要插入的值,因此它的列数必须与相应insert_into_clause 的列列表相同。如果未在 insert_into_clause 中指定列列表,则计算行必须为目标表中的所有列提供值。
For both types of insert operations, if you specify a column list in the insert_into_clause, then the database assigns to each column in the list a corresponding value from the values clause or the subquery. You can specify DEFAULT for any value in the values_clause. If you have specified a default value for the corresponding column of the table or view, then that value is inserted. If no default value for the corresponding column has been specified, then the database inserts null. Refer to "About SQL Expressions" and SELECT for syntax of valid expressions.
对于这两种类型的插入操作,如果您在 insert_into_clause 中指定了一个列列表,那么数据库会从 values 子句或子查询中为列表中的每一列分配一个相应的值。您可以为 values_clause 中的任何值指定 DEFAULT。如果您为表或视图的相应列指定了默认值,则会插入该值。如果未指定相应列的默认值,则数据库插入空值。有关有效表达式的语法,请参阅“关于 SQL 表达式”和 SELECT。
格式语法: INSERT ALL INTO tab_name(col_name) VALUES(val...) SELECT 1 FROM dual;
- 如果省略
values_clause子句,那么INSERT INTO的表的值来自SELECT子句查询的列值,需要SELECT为每个声明的列定义都返回值;也就是可以提供后退默认值 - 如果省略
col_defines列定义,那么提供的VALUES子句或者SELECT子查询都需要为每个列赋予值进行插入 - 如果VALUES子句中使用DEFAULT关键字,那么值来源于列的默认值,如果列没有默认值,那么会插入NULL。
注意:
values_clause子句中可以使用SELECT子查询的列的值- 如果需要使用SELECT子查询,切记需要与 {声明的列 或者 与表中列(没有声明列名)} 都需要赋予默认值
官方文档里来源地址:https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9014.htm#i2121694 搜索 values_clause 可快速定位相关的位置
Oacle 插入多条记录的语法理解;INSERT ALL INTO ....... SELECT 1 FROM dual;的更多相关文章
- 一次插入多条记录 [mysql]
调用多次INSERT语句不就可以插入多条记录了吗?但使用这种方法要增加服务器的负荷,因为,执行每一次SQL服务器都要同样对SQL进行分析.优化等操作.幸好MySQL提供了另一种解决方案,就是使用一条I ...
- 一条insert语句批量插入多条记录
一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , firstName, ...
- mySQL中插入多条记录
用一条INSERT向SQL中插入多条记录 2008-12-22 10:07:01| 分类: 记事本_编程技术|举报|字号 订阅 Sql 语法: 插入多行记录 Insert Into Tabl ...
- MySQL使用INSERT插入多条记录
MySQL使用INSERT插入多条记录,应该如何操作呢?下面就为您详细介绍MySQL使用INSERT插入多条记录的实现方法,供您参考. 看到这个标题也许大家会问,这有什么好说的,调用多次INSERT语 ...
- AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。
做测试的时候遇到一个情况"AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的." 检查到该表(TABLE_ABC)所有的key都是AllowDuplicate的, 继 ...
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...
- sql 中实现往表中插入一条记录并返回当前记录的ID
写一条存储过程,实现往User中插入一条记录并返回当前UserId(自增长id) --推荐写法 if(Exists(select * from sys.objects where name=N'Usp ...
- SQLServer 触发器 同时插入多条记录有关问题
由于 SQL Server 的触发器, 没有 FOR EACH ROW (ORACL中有)的选项, 有时候不正确的使用 inserted 与deleted 可能会有点麻烦. 下面来一个简单的例子 -- ...
- ACCESS-delphi向中插入一条记录报错,但ACCESS不会
问题:在DELPHI中向ACCESS中插入一条记录时,提示“插入错误”,但是取出SQL直接放在ACCESS中插入成功?答:原因是插入语句中的字段名是DELPHI的内部标示符.
随机推荐
- oracle-11G转10G
先查询directory的地址 导出的文件必须放在此目录select * from dba_directories;找到directory_name的值 ,也可以新建一个create director ...
- 零售BI:为什么说零售行业非上一套企业BI系统不可?
如果你要问为什么现在越来越多的零售企业都会在公司上一套企业BI系统,这边文章就能解答你的疑惑. 2016年10月,马云在云栖大会上提出了"新零售"概念.在新零售时代,数字化转型打通 ...
- springboot页面国际化
引入依赖pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...
- 【C# 并发编程】开端
1,异步编程 异步编程就是使用future模式(又称promise)或者回调机制来实现(Non-blocking on waiting). 如果使用回调或事件来实现(容易callback hell), ...
- 【windows 操作系统】Windows系统机制之对象管理器
转载自 Windows系统机制之对象管理器 设计的几个目的: 提供一种公共统一的机制来使用系统资源 将对象保护隔离到OS中的一个地方,从而确保统一的一致的对象访问策略 提供一种机制来管理进程对对象的使 ...
- LeetCode-022-括号生成
括号生成 题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 示例说明请见LeetCode官网. 来源:力扣(LeetCode) 链接:https ...
- 基于Spring Boot的线程池监控方案
前言 这篇是推动大家异步编程的思想的线程池的准备篇,要做好监控,让大家使用无后顾之忧,敬畏生产. 为什么需要对线程池进行监控 Java线程池作为最常使用到的并发工具,相信大家都不陌生,但是你真的确定使 ...
- tp5(laravel7) ajax模型修改数据
① 设置ajax请求(10分) ② 后台更改数据值(10分) ③ 重新计算平均分(10分) ④ 无刷新更新评分结果(10分) 思路: 在详情页面中有一个评分的按钮,单击后进行修改数据,首先找见本条数据 ...
- php使用kafka代码
生产者 producer.php文件 <?php /** * Created by PhpStorm. * User: shiyibo * Date: 2019/2/24 * Time: 12: ...
- mybatis crud 学习总结02
1.db.properties 原因:数据库的连接直接写到配置(mybati-config.xml)里存在安全隐患 解决:将配置的信息放到一个文件中管理 右键resources --> File ...