当前位置:  数据库>mysql

MySQL 关于表复制 insert into 语法的详细介绍

    来源: 互联网  发布时间:2014-10-11

    本文导语:  web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码。下面我以...

web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码。下面我以mysql数据库为例分情况一一说明:
两张表:insertTest和insertTest2,前者中有测试数据
代码如下:

create table insertTest(id int(4),name varchar(12));
insert into insertTest values(100,‘liudehua');
insert into insertTest values(101,‘zhourunfa');
insert into insertTest values(102,‘zhouhuajian');

1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:
  INSERT INTO 目标表 SELECT * FROM 来源表;
代码如下:

insert into insertTest select * from insertTest2;

2.如果只希望导入指定字段,可以用这种方法:
代码如下:

INSERT INTO 目标表 (字段1, 字段2, …) SELECT 字段1, 字段2, … FROM 来源表; 

注意字段的顺序必须一致。
代码如下:

insert into insertTest2(id) select id from insertTest2;

3.如果您需要只导入目标表中不存在的记录,可以使用这种方法:
代码如下:

 INSERT INTO 目标表 
 (字段1, 字段2, …) 
 SELECT 字段1, 字段2, … 
 FROM 来源表 
 WHERE not exists (select * from 目标表 
 where 目标表.比较字段 = 来源表.比较字段);

1>.插入多条记录:
代码如下:

insert into insertTest2
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);

2>.插入一条记录:
代码如下:

insert into insertTest
(id, name)
SELECT 100, ‘liudehua'
FROM dual
WHERE not exists (select * from insertTest
where insertTest.id = 100);

使用 dual 作表名,select 语句后面直接跟上要插入的字段的值。

    
 
 

您可能感兴趣的文章:

  • mysql 存储过程实例和基本语法
  • mysql_real_query报语法错
  • MySQL的SQL语法解析器 DBIx-MyParse
  • MYSQL 批量替换之replace语法的使用详解
  • MySQL 创建索引(Create Index)的方法和语法结构及例子
  • 浅析一个MYSQL语法(在查询中使用count)的兼容性问题
  • MySQL ALTER语法的运用方法
  • shell监控脚本实例—监控mysql主从复制 iis7站长之家
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • MySQL Order By语法介绍
  • 深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
  • 与MSSQL对比学习MYSQL的心得(一)--基本语法
  • MySQL DELETE语法使用详细解析
  • MySQL union 语法代码示例分析
  • MySQL prepare语句的SQL语法
  • MySQL的语法及其使用指南
  • MySQL进阶SELECT语法篇
  • MySQL与Oracle的语法区别详细对比
  • 浅析Mysql Join语法以及性能优化
  • MySQL 最基本的SQL语法/语句
  • 异构数据源复制 MySQL Syncer
  • MySQL 复制拓扑可视化工具 Orchestrator
  • mysql中复制表结构的方法小结
  • 基于MySQL数据库复制Master-Slave架构的分析
  • mysql复制中临时表的运用技巧
  • mysql 复制记录实现代码
  • MySQL复制表结构和内容到另一张表中的SQL语句
  • 深入mysql主从复制延迟问题的详解
  • mysql主从同步复制错误解决一例
  • mysql 复制过滤重复如何解决
  • shell监控脚本实例—监控mysql主从复制
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql insert if not exists防止插入重复记录的方法
  • MySql中使用INSERT INTO语句更新多条数据的例子
  • mysql中insert与select的嵌套使用方法
  • PHP MySQL Insert Into用法
  • mysql中insert与select的嵌套使用解决组合字段插入问题
  • 解析MySQL中INSERT INTO SELECT的使用
  • Mysql中Insert into xxx on duplicate key update问题
  • MySQL中REPLACE INTO和INSERT INTO的区别分析
  • 这个jsp程序为什麽不能向mysql中插入数据呢?insert into语句有问题吗?
  • 使用MySQL的LAST_INSERT_ID来确定各分表的唯一ID值
  • MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
  • mysql 操作总结 INSERT和REPLACE
  • mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
  • MySQL的Replace into 与Insert into on duplicate key update真正的不同之处
  • 逐步分析MySQL从库com_insert无变化的原因
  • jsp连接MySQL实现插入insert操作功能示例
  • MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程
  • 在Linux内安装了Mysql,无法进入Mysql.
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 怎样在linux终端输入mysql直接进入mysql?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3