- 浏览: 1984654 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (188)
- java基础 (22)
- 经验+注意 (39)
- Oracle (34)
- javaScript (28)
- jquery (24)
- iBatIS (11)
- hibernate (8)
- struts1.x (1)
- spring (1)
- SVN (1)
- myeclipse (12)
- jbmp工作流 (1)
- 其他 (22)
- 杂谈 (4)
- struts2 (5)
- css (4)
- 正则表达式 (2)
- jstl标签 (4)
- Java Tree (2)
- Jboss (1)
- json (1)
- HttpURLConnection (1)
- Apache commons工具包 (1)
- groovy+grails (2)
最新评论
-
q2425533:
Java字符串倒序输出 + 数组的排序 -
变脸小伙:
今天也跟着学习了,用到了
struts2拦截器 获得请求方法名+获得请求参数 -
tuspark:
讲解的很不错。URLConnection类的内容也可以看这篇文 ...
HttpURLConnection详解 -
wolf746773350:
...
window.location.href/replace/reload()--页面跳转+替换+刷新 -
wolf746773350:
[/flash]
window.location.href/replace/reload()--页面跳转+替换+刷新
Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。
1.INSERT INTO (SELECT FROM)语句(可连表、可加限制条件where子句)
语句形式为:INSERT INTO table2(a,b,d) (SELECT a,b,d FROM table1)
1.1SQL 将T_COMMISSION_TYPE 和T_PRODUCT_TYPE表的一些数据复制到T_COMMISSION中,部分字段复制!
一种策略对应1W多种产品,批量1W条。
INSERT INTO T_COMMISSION (TYPE_NUM,PRODUCT_NUM,FAST_COMMISSION,CREATE_DATE,EMPLOYEE_ID ,OTHER_FAST_COMMISSION,MONEY,FAST_PRICE,ALL_FAST_COMMISSION ,OTHER_FAST_PRICE,ALL_FAST_PRICE) (SELECT T1.TYPE_NUM,T2.PRODUCT_NUM,0,SYSDATE,'15145117218',0 ,T2.MONEY,T2.MONEY,0,T2.MONEY,T2.MONEY FROM T_COMMISSION_TYPE T1,T_PRODUCT_TYPE T2 WHERE T1.TYPE_NUM='default_type')
1.2 sqlMap文件TCommissionType.xml
<insert id="insertCommission" parameterClass="com.hanpeng.base.phone.model.TCommissionType"> INSERT INTO T_COMMISSION (TYPE_NUM,PRODUCT_NUM,FAST_COMMISSION,CREATE_DATE,EMPLOYEE_ID,OTHER_FAST_COMMISSION ,MONEY,FAST_PRICE,ALL_FAST_COMMISSION,OTHER_FAST_PRICE,ALL_FAST_PRICE) (SELECT T1.TYPE_NUM,T2.PRODUCT_NUM,0,SYSDATE,#employeeId#,0,T2.MONEY,T2.MONEY,0,T2.MONEY,T2.MONEY FROM T_COMMISSION_TYPE T1,T_PRODUCT_TYPE T2 WHERE T1.TYPE_NUM=#typeNum#) </insert>
1.3 CommissionTypeAction
/** * 添加策略类型 * @throws IOException */ public String addCommType() throws IOException { if("true".equals(initLoadMethod)){ successPath = "/jsp/phone/priceStrategy/commissionType/addCommissionType.jsp"; return SUCCESS; } else{ boolean vali = validatePass2(password2); if(vali){ try { TCommissionType commType = new TCommissionType(); commType.setTypeNum( SysGuid.newDateGuid("", 30, 16) );//生成流水号 commType.setTypeName(typeName); commType.setTypeInfo(typeInfo); commType.setCreateDate(new Date()); commType.setEmployeeId(this.getUserId()); service.insertCommType(commType);//添加策略,同时批量1W条,为策略分配产品 setMsg("3002"); } catch (Exception e) { log.error("CommissionTypeAction's addCommType():",e); } } else{ setMsg("3001"); } outPrint(msg); return null; } }
1.4 CommissionTypeServiceImpl
@Service("CommissionTypeService") public class CommissionTypeServiceImpl implements CommissionTypeService { @Resource(name="CommissionTypeDAO") private ICommissionTypeDAO commissionTypeDAO; public void insertCommType(TCommissionType commissionType)throws SQLException { commissionTypeDAO.insert(commissionType); commissionTypeDAO.addCommission(commissionType);//批量1W条 } }
1.5 CommissionTypeDAOImpl
@Repository("CommissionTypeDAO") public class CommissionTypeDAOImpl extends BaseDAOImpl<TCommissionType> implements ICommissionTypeDAO { public CommissionTypeDAOImpl() { super("TCommissionType"); } /**批量1W条,为策略分配产品*/ public void addCommission(TCommissionType commissionType) throws SQLException{ getSqlMapClient().insert("TCommissionType.insertCommission", commissionType); } }
###SELECT查出需要插入的字段,还可以给固定的值,'15145117218'这样的直接插入的表中。
2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中 。示例如下:
--1.创建测试表 create TABLE Table1 ( a varchar(10), b varchar(10), c varchar(10), CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED ( a ASC ) ) ON [PRIMARY] GO --2.创建测试数据 Insert into Table1 values('赵','asds','90') Insert into Table1 values('钱','asds','100') Insert into Table1 values('孙','asds','80') Insert into Table1 values('李','asds',null) GO --3.SELECT INTO FROM语句创建表Table2并复制数据 select a,c INTO Table2 from Table1 GO --4.显示更新后的结果 select * from Table2 GO --5.删除测试表 drop TABLE Table1 drop TABLE Table2
####网上其他问题总结:
用select into来复制一些内容。发现在同一个数据库中是可以成功的。但现在我需要从旧的数据库中提取一些信息,新建另一个数据库,然后再放在里面。这个时候,我想用OPENDATASOURCE来代替table2,但是一直不成功,不知楼主有没有做过类似的功能?这个要怎么写?
答:这种事儿我干过,我的做法供你参考:
先建立新数据库查询旧数据库的DBLink;
执行语句:CREATE TABLE 新表名 AS SELECT * FROM 旧表名@旧数据库名。
===============
方法比较快捷,唯一的缺点是不能复制表结构
发表评论
-
java获得系统盘符(Windows、linux自动切换)
2017-12-22 16:08 2417做文件读写时,本机开发是windows系统,但服务器是li ... -
Oracle时间问题
2013-04-25 16:03 17491.当期时间前一分钟 select sysdate,s ... -
mysql 时间列自动插入当前日期时间
2012-05-09 13:46 3162用current_timestamp,不过这个默认值 ... -
java switch的使用+switch用String作为条件
2012-03-23 16:58 67378一、java switch的基本使用: /* int参数的s ... -
Java字符串倒序输出 + 数组的排序
2012-03-08 18:06 9338一、Java字符串倒序输出 方法一:利用 ... -
HTML转义字符
2012-02-23 14:53 2709HTML字符实体(Character Entit ... -
jQuery Ajax 实例 ($.ajax、$.post、$.get)
2012-02-09 10:43 300882Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦, ... -
checkbox加onClick事件,ajax异步请求后台,$.ajax
2012-02-08 17:02 6805XXX平台要实现一个功能,公告弹出页面上使用复选框设置不再通知 ... -
js限制文件上传类型
2012-01-16 11:24 2273var name = $('#file').val(); v ... -
Random()随机数+随机切换图片
2011-12-13 14:55 3155一、Random()随机数 转自:http://bl ... -
Request对象各种获得路径的方法+Request对象各种方法(.getRemoteAddr)
2011-12-13 14:43 9691用jboss发布的工程,测试request对象返回路径的方法, ... -
HttpURLConnection与URL---接口的应用
2011-11-26 10:14 1863一版XXX中的更新内存的接口应用: 一、定义一个有返回 ... -
oracle一些有用sql+精华
2011-11-10 16:08 1978查找数据库中所有字段 以对应的表 select C.col ... -
ibatIS的<dynamic prepend="WHERE">原理,是判断前一个AND字母是否存在
2011-10-31 17:51 24853今天付出了惨痛的代价,调sqlMap文件调了一下午,杯具啊!! ... -
session详细解析(是否过期、失效时间)
2011-10-26 15:22 11267Session一直是我们做web项 ... -
jsp、js、<a>的访问方式(绝对路径+相对路径)
2011-10-17 17:38 32928一、项目中应用: 1.PrivInterceptor ... -
struts2拦截器 获得请求方法名+获得请求参数
2011-10-14 16:15 24412SSI框架为基础开发的,hulian平台 struts2拦截 ... -
frameset中如何直接跳转至首页(中转页)--window.parent.parent.location.replace
2011-10-13 17:50 2640之间跳转页(中转页),turnToLogin.jsp ... -
request.getContextPath获取绝对路径
2011-10-13 17:31 34745项目需求:所有jsp页必须通过Action转发,不能直接在地址 ... -
json-lib-2.2.3-jdk15.jar+所需jar包
2011-10-10 13:05 13672做项目,用到了json-lib-2.2.3-jdk15.jar ...
相关推荐
ORACLE INSERT INTO SELECT *FROM 分批提交例子
在数据库管理与操作中,`SELECT INTO`与`INSERT INTO SELECT FROM`是两种常见的用于复制或创建新表的方式。这两种语句虽然相似,但在实际使用场景中有着不同的作用和限制条件。 #### 1. `SELECT INTO` `SELECT ...
1.INSERT INTO SELECT语句 语句形式为:...示例如下: INSERT INTO SELECT语句复制表数据 代码如下: –1.创建测试表 create TABLE Table1 ( a varchar(10), b varchar(10), c varchar(10), CONSTRAINT [PK_Table1] P
`INSERT INTO SELECT`语句主要用于将一个表中的数据复制到另一个已经存在的表中。这种方法不仅可以实现数据的简单复制,还可以根据需要对数据进行筛选和转换。此外,由于目标表已存在,因此可以在插入源表字段的同时...
第一句:SELECT * INTO [ToTable] FROM [FromTable] 第二句:INSERT INTO [ToTable] ([fild_One],[fild_Two]) ...第二句(INSERT INTO SELECT FROM)要求目标表[ToTable]存在,由于目标表已经存在,所以我们除了插入源
insert into … select …:可将表1中的全部数据或者部分数据复制到表2中。 eg: 代码如下: insert into t2(id,name,pwd) select id,name,pwd from t1 注:t2必须存在。t1中查询的列名可不与t1列名相同。无 values ...
在SQL中,表复制是常见的数据操作,主要通过两种语句来实现:`SELECT INTO` 和 `INSERT INTO SELECT`。这两种语句在SQL数据库和Oracle数据库中略有不同,下面将详细解析它们的工作原理和使用场景。 1. `INSERT INTO...
相比之下,`INSERT INTO...SELECT` 语句则从一个或多个源表中选择数据并插入到目标表中。这种方式适用于数据迁移、合并或生成汇总数据等场景。其基本语法如下: ```sql INSERT INTO table_name (column1, column2, ...
MySQL中的`INSERT INTO SELECT`语句是一种非常实用的数据库操作,它允许你从一个或多个数据源中选择数据,并将其插入到另一个表中。这种操作在数据迁移、数据整合或者生成汇总报告时非常常见。下面将详细介绍`INSERT...
但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。...
INSERT INTO 表一 (column1, column2, column3, column4) select column1, column2, column3, column4 from 表二 问题二 表中插入数据时,某一字段取数据库中该字段的最大值,并+1, 在表中插入数据时,某一字段...
SELECT语句,如 INSERT INTO # SELECT '0001','2004-4-5','2000','3000' INSERT INTO # SELECT '0002','2004-4-5','1000','5000' INSERT INTO # SELECT '0003','2005-6-7','1500','3000' INSERT INTO # ...
在SQL语句中,`REPLACE INTO` 和 `INSERT INTO` 都是用来向数据库表中添加数据的命令,但它们之间存在重要的区别。本文将详细阐述这两种操作的区别以及使用场景。 首先,`INSERT INTO` 是最常用的插入数据的方式。...
insert into(列名) select 列名 from 表名 where 条件 –不创建表,只复制表数据 select 列名 into 表名(这个表名是不存在的) from 表名 where 条件,–创建一张新表,只复制选择的列名字段数据 Insert是T-sql中...